C语言实战4:常见问题与解决方案
内存管理问题
内存泄漏和野指针是C语言常见问题。动态分配内存后未释放会导致内存泄漏,访问已释放的内存则会产生野指针。
使用malloc和free时需成对出现:
int *arr = (int*)malloc(10 * sizeof(int)); if (arr == NULL) { // 处理分配失败 } // 使用内存 free(arr); arr = NULL; // 避免野指针指针与数组混淆
数组名在多数情况下会退化为指针,但二者并非完全等价。数组名是常量指针,不可重新赋值。
int arr[5] = {1, 2, 3, 4, 5}; int *ptr = arr; // 合法 arr = ptr; // 非法,数组名不可修改字符串处理
C语言字符串以