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

动态分配内存有关问题

2012-03-06 
动态分配内存问题我想动态分配二维数组的内存,怎么写呀如:int*a[]newint可以吗?[解决办法]不可以int *a

动态分配内存问题
我想动态分配二维数组的内存,怎么写呀如:
  int   *a[]=new   int可以吗?

[解决办法]
不可以
int *a = new int[100];
[解决办法]
贴段代码,LZ看下...

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
int num1,//行数
num2;//列数

cout < < "Please enter the number for row and column: " < <endl;
cin > > num1 > > num2;

//为二维数组开辟空间
int **p = new int*[num1];
for(int i=0; i <num1; ++i)
p[i] = new int[num2];

for(int j=0;j <num1;j++)
{
for(int k=0;k <num2;k++)
{
p[j][k]=(j+1)*(k+1);
cout < <setw(6) < <p[j][k] < < ': ' < <setw(8) < <&p[j][k];
}
cout < <endl;
}

//释放二维数组占用的空间
for(int m=0;m <num1;m++)
delete[] p[m];
delete[] p;

return 0;
}

[解决办法]
int ** ptr = new int*[NUM];
for(int i = 0;i <NUM;i++)
{
ptr[i] = new int[NUM];
}

......

for(int i = 0;i <NUM;i++)
{
delete []ptr[i];
}
delete []ptr,
ptr = NULL;


[解决办法]
二维:
int **a = new int*[num1];
for (int i = 0;i <num1;++i)
a[i] = new int[num2];

释放:
for (int i = 0;i <num1;++i)
delete[] a[i];
delete[] a;
[解决办法]
C中 :
int(*a)[4]=(int(*)[4])malloc(...);

C++ 中:
int (*a)[4]=new int[4][4];

a就和数组的用法类似了。


如 a[1][2]=9;

...
[解决办法]
mark

[解决办法]
上边几种方法都可以.
[解决办法]
这么老的帖子都翻出来了
[解决办法]
数组只能静态分配空间!!

热点排行