如何获取new分配的动态数组的大小?

天马行空_ 2018-10-09 08:32:10
int *a = new int[5];
现在,如何通过a得到指针a指向的数组大小?5
...全文
718 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lierniu1234 2021-08-26
  • 打赏
  • 举报
回复

new不知道,malloc可以

char *p;
p=(char*)malloc(sizeof(20));
cout << _msize(p);//开辟了20个字节

cin>>p;
int L=strlen(p);
p=(char*)realloc(p,L+1);
cout << _msize(p);//实现按需分配

yshuise 2018-10-11
  • 打赏
  • 举报
回复
这个5是用户自己给定的值。
RalphyZ 2018-10-10
  • 打赏
  • 举报
回复
你这样定义的话应该是不能获取大小的,a是指针,只记录地址,并没有数据大小的记录
棉猴 2018-10-10
  • 打赏
  • 举报
回复

const int LENGTH_ARRAY = 5;
int *a = new int[LENGTH_ARRAY];

以后就使用LENGTH_ARRAY即可
英雄@末路 2018-10-10
  • 打赏
  • 举报
回复
单独通过a不行,就是个指针,不过自己分的大小自己应该知道吧
qq_33601473 2018-10-09
  • 打赏
  • 举报
回复
sizeof(int)*5
yiyefangzhou24 2018-10-09
  • 打赏
  • 举报
回复
sizeof(int)*5,你自己要申请多少不是应该自己知道吗
CGabriel 2018-10-09
  • 打赏
  • 举报
回复
StackOverFlow 上面有解答 How do I find the length of an array? https://stackoverflow.com/questions/4108313/how-do-i-find-the-length-of-an-array

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧