数组的赋值有关问题。调试006.exe 中的 0x778cf8c5 处未处理的错误: 0xC0000005: 写入位置 0x00030ffc 时发生访问冲突
数组的赋值问题。调试006.exe 中的 0x778cf8c5 处未处理的异常: 0xC0000005: 写入位置 0x00030ffc 时发生访问冲突
int i=0,j,m; //i表示个体数即第i组参数,j表示第j个基因即第i组参数中j个
int k=0,a[16]={0};
double sum1,sum2,sum;
float parameter[5],f;
……
typedef struct
{
int gene[5][16];
}
individual;
……
for(i=0;i<4;i++) //第i组参数
{
cout<<"Please enter NO."<<i+1<<" set of parameter:"<<endl;
cin>>parameter[0]; //输入参数
cin>>parameter[1];
cin>>parameter[2];
cin>>parameter[3];
cin>>parameter[4];
for(j=0;j<5;j++) //第j个参数
{ /*以下为格雷编码*/
m=(int)(parameter[j]);
f=parameter[j]-m;
for(k=7;k>=0;k--) //第k位参数基因
{
a[k]=(int)(f*2);
f=f*2-a[k];//下一次被除数为上次除2的商
}
k=8;
while(m)
{
a[k]=m%2;
k++;
m=m/2;//下一次被除数为上次除2的商
}
cout<<"Gray code: ";
for(k=0;k<7;k++)
{
a[k]=a[k+1]^a[k];
}
for(k=8;k<15;k++)
{
a[k]=a[k+1]^a[k];
}
for(k=15;k>=0;k--)
{
if(k==7)cout<<".";
parent[i].gene[j][k]=a[k];
cout<<parent[i].gene[j][k]; //总感觉这样直接赋值不妥,但找不到原因。
}
cout<<endl;
}
……
以上是程序节选,运行没有错误,但是运行到第四组第四个参数时,始终不能编码。
出现以下错误提示:
调试006.exe 中的 0x778cf8c5 处未处理的异常: 0xC0000005: 写入位置 0x00030ffc 时发生访问冲突
请高手解答。
------解决方案--------------------
断点调点下,应该是野指针错误,或者写入地址有问题~
------解决方案--------------------
int i=0,j,m; //i表示个体数即第i组参数,j表示第j个基因即第i组参数中j个
int k=0,a[16]={0};
double sum1,sum2,sum;
float parameter[5],f;
……
typedef struct
{
int gene[5][16];
}
individual;
……
for(i=0;i<4;i++) //第i组参数
{
cout<<"Please enter NO."<<i+1<<" set of parameter:"<<endl;
cin>>parameter[0]; //输入参数
cin>>parameter[1];
cin>>parameter[2];
cin>>parameter[3];
cin>>parameter[4];
for(j=0;j<5;j++) //第j个参数
{ /*以下为格雷编码*/
m=(int)(parameter[j]);
f=parameter[j]-m;
for(k=7;k>=0;k--) //第k位参数基因
{
a[k]=(int)(f*2);
f=f*2-a[k];//下一次被除数为上次除2的商
}
k=8;
while(m)
{
a[k]=m%2;
k++;
m=m/2;//下一次被除数为上次除2的商
}
cout<<"Gray code: ";
for(k=0;k<7;k++)
{
a[k]=a[k+1]^a[k];
}
for(k=8;k<15;k++)
{
a[k]=a[k+1]^a[k];
}
for(k=15;k>=0;k--)
{
if(k==7)cout<<".";
parent[i].gene[j][k]=a[k];
cout<<parent[i].gene[j][k]; //总感觉这样直接赋值不妥,但找不到原因。
}
cout<<endl;
}
……
以上是程序节选,运行没有错误,但是运行到第四组第四个参数时,始终不能编码。
出现以下错误提示:
调试006.exe 中的 0x778cf8c5 处未处理的异常: 0xC0000005: 写入位置 0x00030ffc 时发生访问冲突
请高手解答。
C++ 格雷编码 数组
------解决方案--------------------
断点调点下,应该是野指针错误,或者写入地址有问题~
------解决方案--------------------