看看这段代码.. 在这里我从文件中获取输入并分配给数组 sudoku [] [] ..同时将这些值分配给 TempArr [] [] (另一个数组) ..
但是当我在分配后检查TempArr [] []的值时,与sudoku [] []中的值不同。
for (i=0;i<size;i++)
{
for (j=0;j<size;j++)
{
if(fscanf(ip_file,"%d",&sudoku[i][j])==1)
{
//copy to TempArr
TempArr[i][j]==sudoku[i][j];
}
else
{
perror ("fscanf failed on input file.\n");
// return error
}
}
}
所以,当我用“TempArr [] []”替换“sudoku [] []”时,它正在工作..
即,if(fscanf(ip_file,"%d",&TempArr[i][j])==1)
为什么会发生这种情况?如何处理这种情况?
答案 0 :(得分:5)
TempArr[i][j]==sudoku[i][j];
请参阅==
?那不会分配;)
编辑:另外值得注意的是 - 编译器可以帮助您完成这些工作。如果您在编译时使用-Wall
选项,它会告诉您:
&GT; gcc -Wall -o test test.c
test.c:13:9:warning:声明无效[-Wunused-value]
您可以指定一些有用的警告级别来提醒您这些事情:
答案 1 :(得分:1)
呃,==
不是作业,而是对平等的考验。