我試圖做一個函數,接受一個預先分配的內存指針作爲輸入,並用該數據填充該位置的結構數組。在這個例子中,我期望的輸出爲:填充函數內動態分配的結構
W 100
L 200
然而,第一線是正確的,但第二行打印沒有字符和一個零。我究竟做錯了什麼?
typedef struct{
char word;
long number;
}record;
void makerec(record** data){
data[0]->word='W';
data[0]->number=100;
data[1]->word='L';
data[1]->number=200;
}
int main(){
record* data=(record*)malloc(sizeof(record)*1000);
makerec(&data);
printf("%c %ld\n",data[0].word,data[0].number);
printf("%c %ld\n",data[1].word,data[1].number);
free(data);
return 0;
}
'data [1]'訪問超出界限。你的意思是'(* data)[1] .word ='L';'等等 –