C++ 简单的 malloc 和 sizeof

C++ simple malloc and sizeof

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

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

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

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

sizeof(char) = 1 byte

因此,您每次都得到 4,因为您的系统是 32 位计算机