malloc()总是可以增加数组的大小吗?

时间:2011-10-04 17:28:31

标签: c++

如果我使用malloc()来增加数组的大小,那会一直有效吗,还是有时会出现内存错误?

3 个答案:

答案 0 :(得分:5)

值得一提的是malloc不会增加现有内存的大小。它分配新的内存。 realloc可用于“增加”内存,但它有时是一个棘手的函数(它可以返回与原始内容不同的指针,如果它无法分配新内存,则原始内存保持不变)。

答案 1 :(得分:4)

如果你有足够的记忆,它会“起作用”。如果你没有足够的内存,那么它将无法工作。

现在,当我说“工作”时,它取决于的意思是“工作”。 malloc不会增加程序内存使用量以外的任何内容。

为什么不使用std::vector

答案 2 :(得分:2)

realloc如果无法分配内存,将返回NULL

Malloc不会调整数组大小。而realloc只能用于malloc一个。