函数中申请二维数组 main函数中释放

来源:百度知道 编辑:UC知道 时间:2024/09/23 11:05:35
我想完成这样的功能

int func( int (*p)[3])
{
p = new int[2][3];
for.....
.....
......//一些列的赋值操作
return //这里把动态申请的p返回。。不知道怎么写 上面函数返回类型也不知道怎么写
}

void main()
{
int (*p)[3];
p = func(p); //根据func的返回类型可以改变这个式子的写法
for.....
.....
.....//输出在函数中的赋值
return 0;
}
在return 之前应该有个释放的
高手帮写一下 2维数组的释放
谢谢啦

我有new啊。。。当然要释放。。不然不内存泄露了么。。

返回值类型就写 int* 可以了, 反正都是指针, 都是四个字节.
不过在func函数返回时要强制类型转换 : return (int*)p;
在main函数调用时也要强制类型转换: p = (int (*)[3])func(p);

不管多少维数组都是 delete[] p;

你没有用malloc 没有必要释放 到return自然就没了
要是用new的话 用delete []
p = new int[2][3];
delete[] p;