C语言的动态内存分配有关问题
C语言的动态内存分配问题
上面运行老是出错,问题就在我释放内存的问题上,但不知道怎么改
------解决方案--------------------
for (i = 0; i < 3; i++)
p[i]=(int *)malloc(sizeof(int)); //让每个指针指向一快内存
这个不是应该这样写啊
for (i = 0; i < 3; i++)
p[i]=(int *)malloc(sizeof(int)*3); //让每个指针指向一快内存
# include <stdio.h>
# include <malloc.h>
# include <iostream>
using namespace std;
int main()
{
int ** p; //定义一个多级指针
int i, j;
p=(int **)malloc(sizeof(int*)*3); //动态分配n个指针
for (i = 0; i < 3; i++)
p[i]=(int *)malloc(sizeof(int)); //让每个指针指向一快内存
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
p[i][j] = 10+i+j;
}
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
cout << p[i][j] << " ";
}
cout << endl;
}
for (i = 0; i < 3; i++)
for(j = 0; j < 3; j++)
free((*(p+i)+j));
free(p);
return 0;
}
上面运行老是出错,问题就在我释放内存的问题上,但不知道怎么改
C
------解决方案--------------------
for (i = 0; i < 3; i++)
p[i]=(int *)malloc(sizeof(int)); //让每个指针指向一快内存
这个不是应该这样写啊
for (i = 0; i < 3; i++)
p[i]=(int *)malloc(sizeof(int)*3); //让每个指针指向一快内存