在C语言中,删除操作通常指的是释放动态分配的内存。这里有两种常见的方法:使用 `free()` 函数和 `realloc()` 函数。
使用 `free()` 函数释放内存
`free()` 函数用于释放之前使用 `malloc()`、`calloc()` 或 `realloc()` 函数分配的内存。使用方法如下:
```c
include
void free(void *ptr);
```
其中,`ptr` 是要释放的内存块的指针。
示例代码:
```c
include include int main() { int *ptr; int n = 5; // 动态分配内存 ptr = (int *)malloc(n * sizeof(int)); // 使用分配的内存 for (int i = 0; i < n; i++) { ptr[i] = i + 1; printf("%d ", ptr[i]); } printf("\n"); // 释放内存 free(ptr); return 0; } ``` `realloc()` 函数用于调整之前分配的内存块的大小。如果新的大小大于原来的大小,那么会保留原来的数据并分配更多的内存。使用方法如下: ```c include void *realloc(void *ptr, size_t size); ``` 其中,`ptr` 是指向之前分配的内存块的指针,`size` 是新的内存大小。 示例代码: ```c include include int main() { int *ptr; int n = 5; // 动态分配内存 ptr = (int *)malloc(n * sizeof(int)); // 使用分配的内存 for (int i = 0; i < n; i++) { ptr[i] = i + 1; printf("%d ", ptr[i]); } printf("\n"); // 调整内存大小 n = 10; ptr = (int *)realloc(ptr, n * sizeof(int)); // 使用调整后的内存 for (int i = 0; i < n; i++) { printf("%d ", ptr[i]); } printf("\n"); // 释放内存 free(ptr); return 0; } ``` 建议 在使用 `free()` 函数释放内存后,应将指针置为 `NULL`,以避免悬空指针问题。 在使用 `realloc()` 函数时,应注意检查返回值,以确保内存分配成功。如果 `realloc()` 失败,它会返回 `NULL`,并且原内存块保持不变。 通过以上方法,你可以在C语言中有效地删除动态分配的内存。使用 `realloc()` 函数调整内存大小并释放多余的内存