首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言的动态内存分配有关问题

2013-08-09 
C语言的动态内存分配问题# include stdio.h# include malloc.h# include iostreamusing namespace s

C语言的动态内存分配问题


# 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);  //让每个指针指向一快内存

热点排行