诚心请教,怎样生成动态二维数组???
请教各位高手,怎样才可以通过调用子函数的方法,通过用户传递的两个每维的值生成
对应的数组??望赐教!
对应的数组??望赐教!
----------------解决方案--------------------------------------------------------
(类型*)malloc(行数*列数*sizeof(类型))
----------------解决方案--------------------------------------------------------
希望第二楼说详细一点就好。
----------------解决方案--------------------------------------------------------
内存是连续的,所以在内存中没有几维的概念.
动态生成N维数组完全可以当成一维数组来申请.
使用的时候当成N维就可以了
----------------解决方案--------------------------------------------------------
我想问是(类型*)malloc(行数*列数*sizeof(类型))是用在结构体里,可以要在数组里,毕竟数组是静态储蓄,如果要用怎样用?
----------------解决方案--------------------------------------------------------
[QUOTE]我想问是(类型*)malloc(行数*列数*sizeof(类型))是用在结构体里,可以要在数组里,毕竟数组是静态储蓄,如果要用怎样用?[/QUOTE]
谁说它是用在结构体里的?
malloc是标准的动态分配函数.和(C++的new是一个原理.难道new只能用在类?)
其他函数还有 allocmem 和 calloc
去查一下使用方法你就明白了
再多问一句?难道还没学动态分配数组?结构体都学过了.不应该没学到啊
----------------解决方案--------------------------------------------------------
SunShining老大,或者学过我忘记,书上没有涉及,请指教。
----------------解决方案--------------------------------------------------------
这个..就是利用堆栈动态的分配一组连续的内存(当然.这个静态存储区是不同的)
然后在必要的时候可是手动释放掉这些内存(静态的数组是在程序结束后自动释放的)
适用于大的数组.在使用后就立刻释放掉...这样能节省很多内存空间.当然 很多其他的方面也是非常有用的
至于细节.建议你还是找些书或者资料.(让我说估计我说不太明白)
----------------解决方案--------------------------------------------------------
这样..希望举个例子让人易明白,继续老大。
----------------解决方案--------------------------------------------------------
...例子吗?
#include<stdio.h>
#include<malloc.h>
int main()
{
int *prt=NULL;
int i;
prt=(int*)malloc(10*sizeof(int));
for(i=0;i<10;i++)
prt[i]=i+5;
printf("%d",prt[5]);
free(prt);
}
简单点...就这样了
----------------解决方案--------------------------------------------------------