很奇怪的行为,我有一个简单的函数:与数组声明
DoRead(double *writeArray){
//GblOutData is an array of length 80, where each element is 1
writeArray=GblOutData;
//prints out 1
printf("%f",writeArray[5]);
return 0;
}
当我打电话DoRead()会发生什么:
double data[80];
DoRead(data);
printf("%f",data[5]);
//prints out 0.000000 instead of 1
我想不通为什么发生这种情况。有任何想法吗?
因为你从来没有设置'数据[5]'为1?仅供参考,当您执行'writeArray = GblOutData;'时,您不会更改函数外部的参数,您只是更改函数内的指针,实际上只是打印'GblOutData [5]'。 –
@SethCarnegie你是对的!当我只是手动设置writeArray [5] = 1 – mugetsu