sizeof(dog) を「印刷」するとき
char dog[1000];// i get size of 1000
char *dog = (char*)malloc(1000 * sizeof(char));// i get size of 8 ? why?
どうも
sizeof(dog) を「印刷」するとき
char dog[1000];// i get size of 1000
char *dog = (char*)malloc(1000 * sizeof(char));// i get size of 8 ? why?
どうも
最初の変数の型char[1000]
は、1000 文字の配列です。
2 番目の変数の型char *
はポインターです。お使いのシステムでは、ポインターのサイズが 8 のようです (おそらく 64 ビット ポインターを使用しているため)。
文字の配列であるのchar *dog
に対し、単一のポインターであるためです。char dog[1000]
注意すべき重要な点は、動的配列 ( ) が不明でsizeof
dog[1000]
あるのに対し、コンパイル時に既知であると判断されることです。char *dog