所以我定義了
#define SYS_LEN 50.0
#define N_CELLS ((int)SYS_LEN)
也
extern double *array_one
我通過它填充
array_one[0] = 0.5*SYS_LEN
array_one[1] = 0.25*SYS_LEN
然后我繼續定義函式
void function(void)
{
int is, ix;
double X;
for (is = 0; is < MAX_VALUE; is ){
for (ix = 0; ix < MAX_VALUE_TWO; ix )
{
X[is] = 0.5 (double)ix - array_one[is]
}
}}
但是,我收到一條錯誤訊息,指出“運算式必須具有指向物件的指標型別”。不太清楚為什么會這樣,任何幫助將不勝感激
謝謝
uj5u.com熱心網友回復:
可能存在多個問題。
潛在的問題之一是你說你分配了記憶體
extern double *array_one
并分配了兩個值。但是您是否為 array_one 宣告了足夠的記憶體,并使用值進行了初始化,以考慮函式中的最大回圈索引,即 MAX_VALUE ?如果沒有分配足夠的記憶體,您將獲得訪問沖突。
問題二是確定的——你用雙 X 宣告了一個雙標量,但試圖訪問它,就像你宣告了一個陣列一樣。
假設您已將 MAX_VALUE 定義為大于 1 的整數,則解決方案是為 X 宣告一個雙精度陣列:
例如,如果您在某處完成
#define MAX_VALUE 20
相應的代碼需要是
void function(void)
{
int is, ix;
double X[MAX_VALUE];
for (is = 0; is < MAX_VALUE; is ){
for (ix = 0; ix < MAX_VALUE_TWO; ix )
{
X[is] = 0.5 (double)ix - array_one[is];
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/450233.html
