【发布时间】:2013-11-05 10:44:56
【问题描述】:
我知道 malloc() 至少分配了所需的大小,因此它可以提供更多。问题是它会在相同的架构中提供至少相同的内存大小吗?
例子:
int * myint = (int*)malloc(sizeof(int))
sizeof(myint) //---> this gives me 8
每次在我的电脑上都会给我 8 个吗?
【问题讨论】:
-
你有什么理由不相信吗?
-
你检查的不是分配数据的大小,而是指针的大小。
-
像很多人一样,您误解了
sizeof的作用。它确实 not 为您提供堆分配的内存块的大小。没有 C++ 函数可以做到这一点。这是使用std::vector而不是 malloc 的众多充分理由之一 -
我现在才意识到您标记了 C++,但使用了
malloc,这是一个 C 构造。虽然大部分 C 语言都在 C++ 中可用,但在 C++ 中很少适用。
标签: c++ pointers memory malloc