我在一个函数中定义一个动态内存数组,将指针传给了另一个函数,在另一个函数中,我怎样才能获取该动态内存数组的大小啊?谢了。
在一个函数中int *a=new int a[100];将指针a传递给了另一个函数,在接收函数中,怎样才能获取a的大小100.
动态内存数组大小的获取
答案:3 悬赏:50 手机版
解决时间 2021-03-17 05:35
- 提问者网友:我没有何以琛的痴心不悔
- 2021-03-17 02:27
最佳答案
- 五星知识达人网友:撞了怀
- 2021-03-17 03:04
可用sizeof(a)/sizeof(int),你试一下行不行,估计不行,因为a相当于指针它的size为4,应当先知道总大小/4即可
全部回答
- 1楼网友:你可爱的野爹
- 2021-03-17 04:59
当然有啊,new出来的数组还是不能越界的,a=new int[10];就只分配10个元素的内存空间
使用的时候跟静态数组是一样的,只是用完了需要delete[]a;
- 2楼网友:忘川信使
- 2021-03-17 03:24
int *a=new int [100];
纠正一点,a本身只是个指针,a的大小永远是4字节。
你的本意,a指向你申请的那块内存大小。
对于这种情况,只能是2个参数,1.需要操作内存首地址,2.内存块长度(取决于你的指针类型)。
或者输入参数改为结构指针,将首地址和长度包含进去。
但无论如何你的代码都需要改。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯