关于new的问题!!急死人了

liaoyong2 2002-06-02 04:09:54
sun=new int[24];
cout<<"size= "<<sizeof(sun)<<endl;
在BCB6中为什么显示为4,而不是24.???????
...全文
32 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
richard_hu 2002-06-02
  • 打赏
  • 举报
回复
sizeof的作用你没有搞清楚。他是用来判断某一种数据类型的size.
因为你的sun是一个int*(也就是指针)类型。故而是4
mylove0618 2002-06-02
  • 打赏
  • 举报
回复
如果你想保存一个生成的数组的内存大小。可以这样做:
int ArraySize=size*sizeof(ElemType);
上面的size为数组元素的个数,ElemType是元素的类型。
举例如下:
int ArraySize=24*sizeof(int);//
gotooxo 2002-06-02
  • 打赏
  • 举报
回复
直接int sun[24]
sizaof(sun)
mylove0618 2002-06-02
  • 打赏
  • 举报
回复
你的用法实际上生成了一个数组,大小为24个int元素。即:
sun=new int[24];//生成一个数组。
mylove0618 2002-06-02
  • 打赏
  • 举报
回复
首先一点,对指针所指变量初始化,应该使用小括弧。即:
sun=new int (24);
其次,sun是一个指针,指针的大小是固定的,一般为4.即一个整型的大小。
  • 打赏
  • 举报
回复
sizeof(sun)返回变量sun的大小。
关于sizeof 重载,请查阅MSDN.
littergavin 2002-06-02
  • 打赏
  • 举报
回复
因为你错了三个地方,首先,赋初值得方法不对,应该用括号(24);第二,接收new的sun应该是指针变量,你没写出来,我不知道你是否做到了;第三,你该用sizeof(*sun),注意有星号的。完毕!
liaoyong2 2002-06-02
  • 打赏
  • 举报
回复
用额外的变量保存sun指向的内存的大小,而不能用sizeof求得
用什么东东求得??怎样求
dajian2000 2002-06-02
  • 打赏
  • 举报
回复
new int[24] 返回的是一个数组的指针,size当然是4了!
littergavin 2002-06-02
  • 打赏
  • 举报
回复
因为你错了三个地方,首先,赋初值得方法不对,应该用括号(24),第二,接收new的应该是指针变量,你没写出来,我不知道你是否做到了,第三,你该用sizeof(*sun),注意有星号的。完毕!
hannibalhontani 2002-06-02
  • 打赏
  • 举报
回复
可以说的详细些吗
solar 2002-06-02
  • 打赏
  • 举报
回复
sun是一个指针,是一个32位的值,当然size是4。必须使用额外的变量保存sun指向的内存的大小,而不能用sizeof求得
solar 2002-06-02
  • 打赏
  • 举报
回复
sun是一个指针,是一个32位的值,当然size是4。必须使用额外的变量保存sun指向的内存的大小,而不能用sizeof求得

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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