如何得到指针指向的数组的长度

2025-05-10 23:41:47
推荐回答(4个)
回答1:

1  、定义数组,要给定其长度,也可以用Type a[ ] = {……} 的方式。

在对数组进行操作时,可能需要计算数组长度,方法是:sizeof(数组名)/sizeof(元素类型)

 

 

2、指针指向的字符数组长度的获取方法,不能用sizeof,因为用sizeof(指针),得到指针长度为4

应该用strlen()函数。

#include 
#include 
int num(char *ptr)
{
     int bb = strlen(ptr);
     return bb;
}
int main()
{
     char *p= new char[100];
     p = "string";
     int b = num(p);
     cout<     return 0;
}

回答2:

c++ new 分配内存 以后,地址前4字节里存放的就是分配内存块的大小信息

函数 int getsize(int *p)就从这里获取数组长度

int *p = new int[100];

getsize(p);

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

return (n - 6) / 4;
}

回答3:

没法知道.不过VC里面好像会在这块内存空间前划4个字节出来,用来存放后面空间的大小

回答4:

仅通过指针是无法获取它指向的数组的大小的。