我有一個結構定義爲如何初始化結構中的數組?
struct new{
int x;
int y;
unsigned char *array;
};
在我想要陣列是被初始化的動態基於用戶輸入陣列。內部主要功能:
struct new *sbi;
sbi->array = (unsigned char*)malloc(16 * sizeof(unsigned char));
for(i=0; i<16; i++)
{
sbi->array[i] = 0;
}
for(i=0; i<16; i++)
printf("Data in array = %u\n", (unsigned int)sbi->array[i]);
我相信我做錯了什麼用malloc的,但我沒有得到它 - 它只是不斷給分段錯誤。
'sbi'指向'malloc'之前的位置?在你的代碼片段中,'sbi'沒有被初始化或賦值。 – pmg
也是'new'是C++中的關鍵字。如果您的代碼有機會翻譯成該語言,您可能需要避免使用該標識符:-) – pmg
標題應爲「如何初始化指向結構的指針?」 – Elyasin