动态分配结构体内存(malloc)

Ramya ·
更新时间:2024-11-15
· 650 次阅读

设计一个简单的结构体模板 ,用于汽车销售系统的搜索界面数据库。动态分配一定的内存空间,存储已有的各种类型的汽车信息。

提示:不能使用指针pcarinfo将已分配的内存区域释放,因为此时由于for循环内pcarinfo做自增运算,其所指位置已不再是动态分配内存的首地址了,因此必须使用pcarinfo释放动态分配的内存。

#include #include struct carinfo { float displacement; float price; float type[20]; char carname[30]; char rc[30]; }; int main() { unsigned int i,j=0; struct carinfo *pcarinfo,*pcarinfocopy; i=sizeof(struct carinfo); printf("结构体carinfo占的字节数为:%u\n",i); pcarinfo=(struct carinfo*)malloc(i*100);//分配100个carinfo结构体类型内存区域 pcarinfocopy=pcarinfo; //记录内存区域首地址 printf("开始输入汽车信息:\n"); for(j=0;jcarname); printf("No.%u车型:",j+1); scanf("%s",pcarinfo->type); printf("No.%u车牌号:",j+1); scanf("%s",pcarinfo->rc); printf("No.%u价位:",j+1); scanf("%s",pcarinfo->price); printf("No.%u排量:",j+1); scanf("%s",pcarinfo->displacement); parinfo++; } printf("output all car's info\n"); pcarinfo=pcarinfocopy; for(j=0;jcarname); printf("No.%u car's车型:%s",j+1,pcarinfo->type); printf("No.%u car's车牌号:%s",j+1,pcarinfo->rc); printf("No.%u car's价位:%s",j+1,pcarinfo->price); printf("No.%u car's排量:%s",j+1,pcarinfo->displacement); parinfo++; } free(pcarinfocopy); //释放动态分配内存区域 }
作者:丹青客



malloc 结构体 动态

需要 登录 后方可回复, 如果你还没有账号请 注册新账号