C ++简单的malloc和sizeof

时间:2016-12-29 05:02:57

标签: c++ malloc sizeof

我用这两条简单的线条获得了一个奇怪的结果

char* reverse = (char*) malloc(sizeof(char)*19);
cout << sizeof(reverse)/sizeof(char) << endl;

无论我放在第一行的数字(在这个例子中,它是19)。我总是得到4作为输出。怎么了 ?感谢。

1 个答案:

答案 0 :(得分:5)

32位机器上 sizeof指针是32位(4字节),而在 64位机器上它是8个字节。无论他们指向哪种数据类型,它们都有固定的大小。

sizeof(char) = 1 byte

所以,你每次都得到4,因为你的系统是 32位机器