我试图做一个函数,接受一个预先分配的内存指针作为输入,并用该数据填充该位置的结构数组。在这个例子中,我期望的输出为:填充函数内动态分配的结构
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';'等等 –