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

Does malloc() always work to increase the size of an array?

本文关键字:数组 增加数 增加 malloc      更新时间:2023-10-16

如果我使用malloc()来增加数组的大小,这是否总是有效,或者我有时会得到内存错误?

值得一提的是,malloc不会增加现有内存的大小。它分配新的内存。realloc可以用于"增加"内存,但它有时是一个棘手的功能(它可以返回一个不同的指针比原来的,如果它不能分配新的内存原始内存保持不变)。

如果你有足够的内存,它将"工作"。如果你没有足够的内存,那么它将无法工作。

现在,当我说"工作"时,这取决于你所说的"工作"是什么意思。malloc不会增加任何东西的大小,除了你的程序的内存使用。

为什么不用std::vector呢?

realloc如果分配内存失败,将返回NULL

Malloc不会调整数组的大小。而realloc只会在malloc的情况下执行。