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语言常见的内存错误及对策的主要内容,如果未能解决你的问题,请参考以下文章

C语言常见的内存错误及对策 - 基本就是6种情况

C语言常见的内存错误及对策 - 基本就是6种情况

常见的内存错误及其对策

C语言知识: 5 个常见错误及对应解决方案分享

C语言篇 + 内存管理及柔性数组话题

论文写作技巧以及常见退稿原因分析及对策(转)