我需要確定一個全局結構(數組),由4個整數組成。 問題是,該結構數組的大小是事先不知道的。在C中定義一個全局結構指針?
我正在試着做某事。像這樣:
typedef struct
{
int value;
int MAXleft;
int MAXright;
int MAX;
} strnum;
int main()
{
int size;
scanf("%d", &size);
strnum numbers[size];
return 0;
}
聽說,可以通過指針要做到這一點,但我不知道該怎麼辦。
在C中,您不會投出malloc返回的內容,如果您忘記包含stdlib.h,則可能會出現問題,因爲默認情況下返回類型(如果沒有原型是int)。通過不鑄造,你會接受。 –
我不認爲如果分配正確的內存量,鑄造'malloc'會產生任何影響。 – sgarizvi
如果有人使用32位PC上的malloc結果進行轉換,並嘗試編譯並在具有8字節指針和4字節整數的64位系統的計算機上啓動,那麼他或她可能會真的很難試圖理解爲什麼後者不起作用。問題是如果沒有原型,返回值將被截斷爲4字節的int,並且很可能會導致段錯誤! –