怎么求数组的大小

来源:百度知道 编辑:UC知道 时间:2024/09/21 13:57:14
int *a = new int[10];

有没有函数可求出a数组的大小10?

这个长度最好定义成常量,以便于后面用到,sizeof和strlen都没办法取得准确长度

32位编译器获取 new 分配数组大小

地址前4字节存放的是数组大小

int getsize(int *p)
{
int n = (int)p;
n -= 4;
int *ptr = (int *)n;
n = *ptr;

return (n - 6) / sizeof(int);
}

int *a = new int[10];

getsize(a);//返回new 分配的数组大小

C++貌似要用模板库的vector才好求到长度...

int *a = new int[10];
这个是动态数组。既然是动态的,你就得自己管理大小。

你用sizeof只能得到指针的大小
这个地方好像没有特别的办法

回答者: 匿名 2009-8-19 12:49

你就扯吧。。。