我对使用动态分配内存的时间限制有点好奇。比如说,对于一个预计一次运行数周的系统,最初 malloc 内存用于某些用途并在延长的时间段内不断重用这个 malloc 的内存是否安全?
是否有任何重新分配内存的规范?
我对使用动态分配内存的时间限制有点好奇。比如说,对于一个预计一次运行数周的系统,最初 malloc 内存用于某些用途并在延长的时间段内不断重用这个 malloc 的内存是否安全?
是否有任何重新分配内存的规范?
只要它不释放它,进程可以使用malloc()
ed 内存的时间是没有限制的。
换句话说,您可以分配一次,然后根据需要继续使用相同的内存。
与重复分配和释放内存相比,这样做的好处是:
缺点是:
对于长时间运行的应用程序,使用内存池并确保您始终有一些内存与其他进程分开可能很有用
您可以保留记忆的时间没有时间限制。:) 但是,如果您不使用内存,操作系统可以在需要时将其换出。因此,如果您使用大量内存,操作系统可能会交换超过所需的内存。当您使用该内存时,它需要再次换入。根据操作系统的工作方式,内存可能不会真正分配,只是在您访问它之前保留。