可能重复:
如何找到 sizeof(指向数组的指针)
例如,当使用 malloc 声明 char 指针时。有没有办法确定分配的长度。
例如,如果我定义一个 char 数组,我可以很容易地找到元素的数量
char a[10];
a[0]='c';
cout << sizeof(a) / sizeof(a[0]);
这将产生 10. 另一方面,如果我尝试使用 char 指针
char *a;
a = (char*)malloc(10);
a[0] = 'c';
cout << sizeof(a) / sizeof(a[0]);
然后它产生 8,这显然是指针的大小,而不是分配的长度。
是否可以找到 char 指针的分配长度?
我问这个而不使用 std::string 或其他的原因是因为我在破解一些面试问题时遇到了这个问题。所以出于好奇