动态数组地址
address of dynamic array
我有这个代码,通过指针返回一个动态数组的地址。但是我如何通过引用返回动态数组的地址?谢谢你. .
int* e(int a[][2],int rows)
{
int *p;
p=new int[2];
int max,min;
max=min=a[0][0];
int i,j;
for(i=0;i<rows;i++)
{
for(j=0;j<2;j++)
{
if(min>a[i][j])
min=a[i][j];
else if(max<a[i][j])
max=a[i][j];
else;
}
}
p[0]=min;
p[1]=max;
delete []p;
return p;
}
在这种情况下,"通过引用返回(ing)动态数组的地址"将归结为通过引用返回p
,但p
是一个局部变量,因此当函数退出时内存将被释放,因此这将不起作用。
如果你真的想,这应该工作:(但我强烈怀疑这是你应该做的,并且可能会导致内存泄漏)
int* &e(int a[][2],int rows)
{
int **p = new int*;
*p = new int[2];
...
return *p;
}
请注意,这是没有意义的:
delete []p;
return p;
释放内存,然后返回指向它的指针。
只要删除删除,一切都应该很好(或至少接近良好)。
相关文章:
- 输出没有重复元素的动态数组(收缩数组)C++
- 将值从另一个数组写入数组,不包括不需要的值 C++
- 将字符串转换为无符号字符数组/字节数组
- 如何使用 ROS 从 yaml 文件中读取带有元组的数组?
- 对数组中子数组的引用
- 检查彩虹数组(检查数组的反向样式是否与自身匹配)
- 如何创建对齐的数组 c++ 数组?
- 查找数组中数组元素的重复出现?
- C++释放带有子数组的数组的内存分配
- 合并两个数组后数组大小不正确
- 返回一个数组,该数组包含数组中的数量,该数组数量较小或等于给定数组中的元素
- 通过键盘输入字符串数组和 int 数组的数组大小
- 如何在C 中创建类似于Python的Numpy数组的数组
- 无法获取数组内数组的总和
- C4838 警告,包含常量字符* 数组的数组初始化
- 连接数组,数组 1 内存消失C++
- 地址数组,带有枚举的返回值
- 如何在C++中创建二维数组的数组
- Q:std::元组/std::数组
- MPI_Send发送数组或数组内容的地址