【发布时间】:2017-05-13 09:46:29
【问题描述】:
这两条简单的线我得到了一个奇怪的结果
char* reverse = (char*) malloc(sizeof(char)*19);
cout << sizeof(reverse)/sizeof(char) << endl;
无论我在第一行输入什么数字(在本例中为 19)。我总是得到 4 作为输出。怎么了 ?谢谢。
【问题讨论】:
-
怎么了?你在计算指针的大小。
-
char*和char[19]是不同的类型。sizeof(char*)在你的系统中是四个字节 -
sizeof(reverse)并没有按照你的想法做: -
那么如何计算整个块的大小?
-
不要。如果需要动态字符数组,请使用
std::string。那有一个size函数。