realloc和malloc区别

`malloc` 和 `realloc` 是 C 语言中用于动态内存分配的两个函数,它们的主要区别在于:
1. 分配方式 :
`malloc` 用于分配新的内存块。
`realloc` 用于调整已经分配的内存块的大小。
2. 参数 :
`malloc` 接受一个参数,即要分配的字节大小。
`realloc` 接受两个参数,第一个是指向之前分配内存的指针,第二个是新的内存大小。
3. 内存初始化 :
`malloc` 分配的内存未被初始化,其内容未定义。
`realloc` 保留原内存中的数据,不会重新初始化。
4. 地址 :
`malloc` 分配的内存块总是新的,返回一个新的内存地址。
`realloc` 可能保留现有的内存地址,或者将内存块移动到一个新的地址。
5. 返回值 :
如果 `malloc` 或 `realloc` 分配失败,它们都会返回 `NULL`。
6. 使用场景 :
`malloc` 常用于首次分配内存。
`realloc` 常用于在程序运行时调整已分配内存的大小。
使用 `malloc` 和 `realloc` 时,应注意内存泄漏的问题,确保在不再需要动态分配的内存时使用 `free` 函数释放它,避免系统资源被浪费



