C++简单的malloc和sizeof

cuo*_*tnk -2 c++ malloc sizeof

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

char* reverse = (char*) malloc(sizeof(char)*19);
cout << sizeof(reverse)/sizeof(char) << endl;
Run Code Online (Sandbox Code Playgroud)

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

Was*_*mad 5

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

sizeof(char) = 1 byte
Run Code Online (Sandbox Code Playgroud)

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

  • 如果你解释了如何做OP正在尝试做的事情,你的答案会更好. (2认同)