数组应该将每对中的前0个更改为字符串inputlist中的下一个数字。
代码:
{
int array[8][8][2]= {{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}};
size_t i,j,p;
char duck;
char inputList[66] = "01111011001111110110010110010100001011011000101111111000110100001";
i=0;
j=0;
for(p=0;p<strlen(inputList);p++){
if(i==7){
i=0;
}
if(j==7){
j=0;
}
duck=inputList[p];
array[i][j][0]=atoi(duck);
i+=1;
j+=1;
}
return 0;
}
返回与atoi有关的错误。发生了什么事?
错误:
传递'atoi'的参数1使得整数指针没有强制转换
我对施法的含义感到有些困惑。我觉得我试图弥补它的混乱。
答案 0 :(得分:2)
您似乎正在尝试使用atoi
来解析单位数字。但是,由于atoi
需要一个C字符串并且需要const char*
,因此您无法将它传递给普通字符。您需要将正确终止的C字符串传递给它。
试试这个:
array[i][j][0]= duck-'0';
答案 1 :(得分:2)
试试这个:
array[i][j][0] = duck - '0';
它使用ASCII代码操作将char duck
中的数字转换为整数。