在C 语言中,我们可以使用malloc函数来动态分配内存空间,使用realloc函数来重新分配内存空间。下面是一个示例代码,实现了一个能够动态扩容的整型数组: #include <stdio.h> #include <stdlib.h> typedef struct { int* data; // 指向数组中第一个元素的指针 size_t size; // 当前数组中元素的数量 size_t capac...
这时有两种情况: ①:原地扩容: 原地址后面有足够的空间支持扩容.这时,会占用后面未被分配的内存空间用于扩容. ②:异地扩容: 原地址后面的内存空间不够支持扩容,则需要找到另外一块内存空间,将数据拷贝过去,然后再扩容.返回新的地址. 图解: 三、动态内存函数操作不当造成的错误: (1)访问空指针 对申请的空间忘记...