多维动态数组问题 我想申明float型的二维或三维动态数组,请问如何实现。我看了前面的帖子,有的话用指针,有的说用CArray,可是我都不会用:( 谁能给出详细的程序(包括申明及对其的赋值)?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.chinaithero.com/dev/vccool/sys_mem/2.htm 示例:声明二维动态数组array[a][b],其中a,b已知声明和定义:float **array = new float *[a];for(int i = 0; i < a; i++) array[i] = new float [b];删除:for(int i = 0; i < a; i++) delete [] array[i];delete [] array; 我知道可以这样CArray<CArray<float,float>*,CArray<float,float>*> m_ar;//要包含afxtempl.h文件然后具体用的时候这样。#define MAX_SIZE 10;for(int i=0;i<MAX_SIZE;i++){ CArray<float,float> artemp; m_ar.Add(&artemp);}可以的。 谢谢Anstinus(笨笨龙),二维的可以了,要是三维的又该怎么办? 谢谢smallsunfish(太阳鱼) ,可是用CArray,添加元素时好麻烦 不会吧,麻烦不是吧,Add就行了呀 我的是2x3维数组动态分配的c实现#include <stdio.h>int main(){int *p;int *head;int i,j;head=(int*)malloc(2*3*sizeof(int));p=head;for (i=0; i<2;i++)for (j=0; j<3;j++){scanf("%d",p);p++;}p=head;for (i=0; i<2;i++)for (j=0; j<3;j++){printf("%d ",*p);p++;}printf("\n"); return 0;} 三维的:声明和定义:float ***array = new float **[a];int i,j;for(i = 0; i < a; i++){ array[i] = new float *[b]; for(j = 0; j < b; j++) array[i][j] = new float [c];}删除:for(i = 0; i < a; i++){ for(j = 0; j < b; j++) delete [] array[i][j]; delete [] array[i];}delete [] array; 可以这样int **a;printf("请输入二维数组的维数\n");scanf("%d%d",&n,&m);a=(int**)malloc(n*sizeof(int*));for(i=0;i<m;i++) a[i]=(int*)malloc(m*sizeof(int));希望对你有帮助 CPU 利用率100%,WHY? CTabCtrl创建属性页 添加资源文件错误 画笔CPen 单位的问题 弱弱的问个问题:编写服务器端和客户端程序,简单地实现文件传输功能 LPHOSTENT 结构体在MSND中没有找到。请大家帮忙解释一下。 怎么实现在view视图中放置3个表格控件? 怎样根据特定高度计算相应字体? 急!如何在VC++中注册新的控件!在线等待! 哪位大侠有 BASE64 的解码算法???急需!!!给您100分!!! 请问写一本300K字程序开发的书,可以索几多MONEY?? 紧急救助!
声明和定义:
float **array = new float *[a];
for(int i = 0; i < a; i++)
array[i] = new float [b];
删除:
for(int i = 0; i < a; i++)
delete [] array[i];
delete [] array;
CArray<CArray<float,float>*,CArray<float,float>*> m_ar;
//要包含afxtempl.h文件
然后具体用的时候这样。
#define MAX_SIZE 10;
for(int i=0;i<MAX_SIZE;i++)
{
CArray<float,float> artemp;
m_ar.Add(&artemp);
}
可以的。
{
int *p;
int *head;
int i,j;head=(int*)malloc(2*3*sizeof(int));
p=head;for (i=0; i<2;i++)
for (j=0; j<3;j++)
{
scanf("%d",p);
p++;
}p=head;for (i=0; i<2;i++)
for (j=0; j<3;j++)
{
printf("%d ",*p);
p++;
}
printf("\n");
return 0;
}
声明和定义:
float ***array = new float **[a];
int i,j;
for(i = 0; i < a; i++)
{
array[i] = new float *[b];
for(j = 0; j < b; j++)
array[i][j] = new float [c];
}
删除:
for(i = 0; i < a; i++)
{
for(j = 0; j < b; j++)
delete [] array[i][j];
delete [] array[i];
}
delete [] array;
int **a;
printf("请输入二维数组的维数\n");
scanf("%d%d",&n,&m);
a=(int**)malloc(n*sizeof(int*));
for(i=0;i<m;i++)
a[i]=(int*)malloc(m*sizeof(int));
希望对你有帮助