主题:请问如何为一级指针分配连续一串内存,并用一个二级指针指向?
007aoj
[专家分:0] 发布于 2006-05-21 12:05:00
请问如何为一级指针分配连续一串内存,并用一个二级指针指向?
#define size 100
int **HF_code=NULL;
HF_code=(int *)malloc(sizeof(int *)*100);
//error!cannot convert from 'int*'to 'int ** '
回复列表 (共4个回复)
沙发
rickone [专家分:15390] 发布于 2006-05-21 23:23:00
用二级指针指向有什么用?
HF_code=(int **)malloc(sizeof(int *)*100);
板凳
007aoj [专家分:0] 发布于 2006-05-22 12:50:00
您好:
一个int类型的一级指针可以malloc一串空间;
那么需要一串这样的int类型的指针 该怎么办?
于是我参照严蔚敏的数据结构书上的做法:
象上面那样做 但出错。
不过一种替代的方法是 用指针数组:
int *a[80];
不过我不清楚为什么书上出错
谢谢
3 楼
rickone [专家分:15390] 发布于 2006-05-22 13:08:00
动态二维数组的实现:
int i,n,m;
int **array2d;
scanf("%d%d",&n,&m);
array2d=(int**)malloc(sizeof(int*)*n);
for(i=0;i<n;++i)
array2d[i]=(int*)malloc(sizeof(int)*m);
/*使用*/
...
/*回收*/
for(i=0;i<n;++i)
free(array2d[i]);
free(array2d);
这样可以了吗?
4 楼
007aoj [专家分:0] 发布于 2006-05-22 14:42:00
谢谢
我来回复