c++ 中 使用new生成array的问题

zqz981 2009-07-29 11:06:25
举例: double *b = new double[100];
当我需要添加新的数据在b里面时, 我使用了realloc的方法。 我想问的是,用new生成的指针数组,可以随时得到数组的大小吗?

基本问题,不过我忘记了。
...全文
105 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zqz981 2009-07-29
  • 打赏
  • 举报
回复
谢谢热心的支持。
windsting 2009-07-29
  • 打赏
  • 举报
回复
貌似开贴讨论过,除非针对特定的编译器写代码,否则不能得到new出来的数组的大小,
你还不如在new的那个地方弄个变量保存呢。

new出来的东西,一定要用delete去干掉,用realloc很可能出问题,但内部类型我估计问题不会太大。
还是老老实实的new出来一个新的空间,把老数据memcpy过去,然后delete []原来的内存吧。
fx397993401 2009-07-29
  • 打赏
  • 举报
回复
学习了
晨星 2009-07-29
  • 打赏
  • 举报
回复
(1)malloc出来的地址可以用realloc,new出来的最好不要用realloc;在有些系统中,malloc/free和new/delete所使用的堆可能都不一是一个;
(2)new动态分配的数组,无法随时获得它的大小,你得自己记住,比如就像std::vector那样,记在一个成员变量中。
wuyu637 2009-07-29
  • 打赏
  • 举报
回复
不行吧。你要用一个标记量来记录你的指针指向的内存的大小。

64,687

社区成员

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

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