因为申请了堆空间,没有释放 出现的问题
int **p = malloc(sizeof(int *) * 5);//申请一个堆地址
//二级指针 { { },{ },{ } }相当于数组里存的地址
//给一级指针申请堆地址
for (int i = 0; i < 5; i++) {
p[i] = malloc(sizeof(int) * 3);
}
//写
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 3; j++) {
p[i][j] = i + j;
}
}
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 3; j++) {
printf("p[%d][%d]=%d\n", i, j, p[i][j]);
}
}
// 释放空间时,应先释放内层空间。
for (size_t i = 0; i < 5; i++)
{
free(p[i]); //*(p+i)
p[i] = NULL;
}
// 释放外层空间
free(p);
p = NULL;
return 0;
https://blog.youkuaiyun.com/qq_51599283/article/details/112673530