如果我使用malloc()
来增加数组的大小,那会一直有效吗,还是有时会出现内存错误?
答案 0 :(得分:5)
值得一提的是malloc
不会增加现有内存的大小。它分配新的内存。 realloc
可用于“增加”内存,但它有时是一个棘手的函数(它可以返回与原始内容不同的指针,如果它无法分配新内存,则原始内存保持不变)。
答案 1 :(得分:4)
如果你有足够的记忆,它会“起作用”。如果你没有足够的内存,那么它将无法工作。
现在,当我说“工作”时,它取决于你的意思是“工作”。 malloc
不会增加程序内存使用量以外的任何内容。
为什么不使用std::vector
?
答案 2 :(得分:2)
realloc如果无法分配内存,将返回NULL
。
Malloc不会调整数组大小。而realloc只能用于malloc一个。