很奇怪的行爲,我有一個簡單的函數:與數組聲明
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