c语言malloc函数的用法

2025-03-01 02:04:19
推荐回答(2个)
回答1:

能强制转换的。你右边强制转换的是结构体的一个指针,左边呢?没见到过。你左边要么是*phonebook 要么phonebook[100]. *phonebook[100]是指向指针的指针。malloc函数返回的是一个地址,但是你不知道这个地址到底是要给一个什么变量的。所以要明确的强制转换。

回答2:

出现了两个错误:1、phonebook=(struct date *)malloc(100*sizeof(struct date*));这个语句中的(struct date *)应该是(struct data *),这个是楼主太粗心了。2、这里的类型明显不匹配,phonebook的类型是指向struct data结构体的指针数组,struct data *的类型是指向struct data结构体的指针。我没有看具体程序是什么功能,若是改成这样程序运行是没有错误的。phonebook[0]=(struct data*)malloc(100*sizeof(struct data));