我用这两条简单的线条获得了一个奇怪的结果
char* reverse = (char*) malloc(sizeof(char)*19);
cout << sizeof(reverse)/sizeof(char) << endl;
无论我放在第一行的数字(在这个例子中,它是19)。我总是得到4作为输出。怎么了 ?感谢。
答案 0 :(得分:5)
在 32位机器上 sizeof指针是32位(4字节),而在 64位机器上它是8个字节。无论他们指向哪种数据类型,它们都有固定的大小。
和
sizeof(char) = 1 byte
所以,你每次都得到4,因为你的系统是 32位机器。