永发信息网

VC6.0中怎么动态分配二维数组---急!!!

答案:4  悬赏:80  手机版
解决时间 2021-03-18 11:09
  • 提问者网友:泪痣哥哥
  • 2021-03-18 03:15
VC6.0中怎么动态分配二维数组,用完之后可以回收的....知道的请大家帮帮忙吧...谢谢哦!!!
VC6.0中定义的int、float类型的变量用完以后可以回收分配的空间吗?????
最佳答案
  • 五星知识达人网友:迟山
  • 2021-03-18 04:09
#include <stdio.h>
#include <stdlib.h>

void main(int argc, char * argv[])
{
int NC=5, NR=3; // 3行5列
int i,j;
int **a; // a[NR][NC] -- *a[NR] -- a[j][i]

// 动态分配
a = (int **) malloc(sizeof(int *) * NR);
for (j=0;j<NR;j++){
a[j] = (int *) malloc(sizeof(int) * NC);
}

// 这里赋值或输入
for (j=0;j<NR;j++) for (i=0;i<NC;i++) {
a[j][i] = (j+1)*100 + i;
}

// 使用数组
for (j=0;j<NR;j++){
for (i=0;i<NC;i++) printf("%3d ",a[j][i]);
printf("\n");
}

// empty (回收内存)
for (j=0;j<NR;j++) free(a[j]);
free(a);
}
全部回答
  • 1楼网友:孤老序
  • 2021-03-18 06:22
#include <stdio.h> #include <stdlib.h> void main(int argc, char * argv[]) { int NC=5, NR=3; // 3行5列 int i,j; int **a; // a[NR][NC] -- *a[NR] -- a[j][i] // 动态分配 a = (int **) malloc(sizeof(int *) * NR); for (j=0;j<NR;j++){ a[j] = (int *) malloc(sizeof(int) * NC); } // 这里赋值或输入 for (j=0;j<NR;j++) for (i=0;i<NC;i++) { a[j][i] = (j+1)*100 + i; } // 使用数组 for (j=0;j<NR;j++){ for (i=0;i<NC;i++) printf("%3d ",a[j][i]); printf("\n"); } // empty (回收内存) for (j=0;j<NR;j++) free(a[j]); free(a); }
  • 2楼网友:愁杀梦里人
  • 2021-03-18 05:48
int m,n,x,y; cin>>m>>n; int * * p=new int *[m]; cout<<"输入m*n数组"<<m<<" "<<n<<endl; for (x=0;x<m;x++){ p[x]=new int [n]; for (y=0;y<n;y++){ cin>>p[x][y]; } }
  • 3楼网友:从此江山别
  • 2021-03-18 04:21
你是不是想说2位随机数啊?那不要用二维数组,只要一维数组,有两个元素就可以了比如定义int a[2];然后a[0]=ran()%9;a[1]=ran()%9就得到你想要的数组了。下面是测试程序,你可以看一下。main(){ int a[2]; int i; for(i=0;i<100;i++) { a[0]=rand()%9; a[1]=rand()%9; printf("%d %d\n",a[0],a[1]); }}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯