关于sizeof的问题,愿大家帮忙解决一下
请大家看以下程序:
- C/C++ code
#include <iostream>using std::cout;using std::endl;int main(){ int *a=new int[10]; cout<<sizeof (*a)<<endl; return 0;}
我的目的是想输出堆里面的分配的空间大小,可此程序始终输出4 ?要怎么写才可以输出我希望的40呢?(假如int占4字节)
[解决办法]
没有办法
[解决办法]
你让他显示的是指针的内存大小,显然就是4
把他们叠加就是40了
[解决办法]
不要总想着用个系统函数“查询”长度,既然是你分配的,你必然知道其长度,那么弄个变量记住长度
[解决办法]
此要求不能满足...
指针只有含指向的地址
占四个字节
int *a=new int[10];
int *b = new int[20];
a和b的数据类型都一样,不应该在指向的数据有多少上有差别
[解决办法]
- C/C++ code
#include <iostream>using std::cout;using std::endl;int main(){ int size=10; int *a=new int[size]; cout<<sizeof (*a)*10<<endl; return 0;}
[解决办法]
http://blog.csdn.net/arong1234/archive/2008/03/23/2210462.aspx
[解决办法]
知道10个元素还要sizeof干吗?