可能重複:
How to find the sizeof(a pointer pointing to an array)長度字符指針的C++
當聲明使用malloc例如一個字符指針。有沒有辦法確定分配的長度。
例如,如果我定義字符數組,我很容易找到元素
char a[10];
a[0]='c';
cout << sizeof(a)/sizeof(a[0]);
的數目這將在另一方面產生10.如果我用字符指針
char *a;
a = (char*)malloc(10);
a[0] = 'c';
cout << sizeof(a)/sizeof(a[0]);
試圖
然後它得到8,這顯然是指針的大小,而不是分配的長度。
是否有可能找到字符指針的分配長度?
我問這個而不使用std :: string或其他的原因是因爲我在解決一些面試問題時遇到了這個問題。所以它出於好奇
旁邊的問題:你爲什麼要在C++中做'malloc'? –
爲什麼不使用** std :: string **? – DumbCoder
這是C的問題,而不是C++?也許改變標籤,至少添加C標籤,C人員有很多解決這個問題的方法。在C++中,我們使用std :: string。 – PiotrNycz