c语言结构内存分配错误的是,求c语言结构体内存分配失败处理安全可扩展性强的方法...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

struct Stu{

char name[20];

int age;

int no;

};

struct Test{

struct Stu *st;

char *buf;

char *buf2;

};

struct Test *malloc_test()

{

struct Test *test= (struct Test*)malloc(sizeof(struct Test));

if(test == NULL){

return NULL;

}

test->st = (struct Stu*)malloc(sizeof(struct Stu));

if(test->st == NULL){

free(test);

test= NULL;

return NULL;

}

test->buf = (char *)malloc(20 * sizeof(char));

if(test->buf == NULL){

free(test->st);

test->st = NULL;

free(test);

test= NULL;

return NULL;

}

test->buf2 = (char *)malloc(10 * sizeof(char));

if(test->buf2 == NULL){

free(test->buf);

free(test->st);

test->buf = NULL;

test->st = NULL;

free(test);

test= NULL;

return NULL;

}

return test;

}

以上是我想的第一种方法 先申请后释放 可是这样 如果以后在结构体中添加一个或删除一个成员时 对代码的改动比较大 请问狼友们有啥子好的办法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值