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;
}
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;
}
没法知道.不过VC里面好像会在这块内存空间前划4个字节出来,用来存放后面空间的大小
仅通过指针是无法获取它指向的数组的大小的。