C语言常见的内存错误及对策
Posted CodeAllen2022
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言常见的内存错误及对策相关的知识,希望对你有一定的参考价值。
原文首发地址:C语言常见的内存错误及对策 - 知乎
1.结构体成员指针未初始化
struct student
char *name; //这里只是分配了4个字节,没有指向一个合法的地址,内部是一些乱码
int score;
stu,*pstu;
int main()
strcpy(stu.name,"code"); //所以这里会出错,解决方法就是为name指针malloc一块空间
stu.score = 99;
return 0;
另一种错误
int main()
pstu = (struct student*)malloc(sizeof(struct student));//这里还是没分配name内存,只是以为分了而已。
strcpy(pstu->name,"code");
pstu->score = 99;
free(pstu);
return 0;
2.没有为结构体指针分配足够的内存
int main()
pstu = (struct student*)malloc(sizeof(struct student*));//这里写错了 sizeof(struct student),导致内存不足
strcpy(pstu->name,"code");
pstu->score = 99;
free(pstu);
return 0;
以上是关于C语言常见的内存错误及对策的主要内容,如果未能解决你的问题,请参考以下文章