1

sizeof(dog) を「印刷」するとき

char dog[1000];// i get size of 1000
char *dog = (char*)malloc(1000 * sizeof(char));// i get size of 8 ? why?

どうも

4

2 に答える 2

4

最初の変数の型char[1000]は、1000 文字の配列です。

2 番目の変数の型char *はポインターです。お使いのシステムでは、ポインターのサイズが 8 のようです (おそらく 64 ビット ポインターを使用しているため)。

于 2012-05-02T00:28:25.997 に答える
1

文字の配列であるのchar *dogに対し、単一のポインターであるためです。char dog[1000]

注意すべき重要な点は、動的配列 ( ) が不明でsizeof dog[1000]あるのに対し、コンパイル時に既知であると判断されることです。char *dog

于 2012-05-02T00:32:51.233 に答える