1、动态内存分配常见问题
1) 结构体成员指针未初始化
2)为指针分配内存太小
3)内存分配成功,但是没初始化
4)内存越界,内存泄漏,free多次或者释放之后没有设置为NULL
2、测试代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//结构体成员指针需要初始化
struct student
{
char *name;
int score;
}stu, *p_stu;
int main()
{
//结构体成员指针未初始化,去掉下面一行代码就会出问题
stu.name = malloc(100);
strcpy(stu.name, "chenyu");
stu.score = 99;
printf("stu name is %s and score is %d\n", stu.name, stu.score);
if (stu.name)
{
free(stu.name);
stu.name = NULL;