比之前用静态内存的好处是动态占用内存更少,基本上就是你想分配多少内存用realloc分配多少就行了,不会像之前可能一个int数组初始化了1000个,结果就用了50个不到。
动态内存虽然比静态内存要复杂,但掌握了后确实挺方便的,
一般是先用malloc 或者 calloc 开辟内存。个人比较喜欢malloc,因为calloc是把内存开辟完后直接赋值0了。可是很多时候并不是所有的数据都要被赋值0的,我更喜欢malloc之后对需要的数据一个个赋值,这样以后如果要改的话也更容易点。
而在之后,因为我们一般malloc 或者calloc 开辟的内存很小,所以在用几次后可能就没了,这时我们要用 realloc去开辟更多的内存,一般是比之前开辟的要大上那么一点。
之后再用完的话,就是通过realloc一次次不断地开辟更多的内存来尽量减少空间的浪费。