當我定義一個陣列時
double *first = (double *)malloc( N*N*sizeof( double ) );
沒有問題。但是當我指定
static double *first = (double *)malloc( N*N*sizeof( double ) );
我收到這個錯誤
error: initializer element is not constant
10 | static double *first = (double *)malloc( N*N*sizeof( double ) );
| ^
我該如何解決?
uj5u.com熱心網友回復:
您可以使用常量運算式初始化具有靜態存盤持續時間的物件。呼叫 malloc 的運算式不是常量運算式。
因此,您需要例如將指標初始化為空指標,例如
靜態雙 *first = NULL;
然后在函式中呼叫函式 malloc
if ( first == NULL ) first = (double *)malloc( N*N*sizeof( double ) );
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/439014.html
上一篇:C中指向char的指標陣列
下一篇:函式指標未在C中賦值
