C释放内存的一点技巧

C语言语法虽然简单,但没有GC,内存需要手动控制。这就造成一个结果,程序员素质不高,软件就会被写的特别烂,程序员要牛逼,软件的表现力会比有GC的效果要好。

在C语言里要申请内存需要使用malloc()函数,反之释放内存使用free()函数,但是如果要释放时,请不要简单的仅仅使用free,如以下例子

【国内直连ChatGPT 29元起】
国内直连ChatGPT,Plus会员每月29元起,支持最新o1模型探索更多领域,无需注册OpenAI账号。

#include <stdlib.h>
int main ()
{
  int * buffer;
  buffer = (int*) malloc (100 * sizeof(int));

  free(buffer);

  // 此时,虽然free了,但buffer还是指向原来的内存地址
  // 如果你不留意,后边使用了buffer做操作,那么程序很大几率会崩溃

  return 0;
}

通常为了避免free之后还会被使用,可以多加一个操作,把变量设置为NULL

#include <stdlib.h>
int main ()
{
  int * buffer;
  buffer = (int*) malloc (100 * sizeof(int));

  free(buffer);
  buffer = NULL;

  // 此时,buffer不仅被free,值也置为空指针,后面就不会有问题了

  return 0;
}

注意,一定要先free然后在设置为NULL

分享

TITLE: C释放内存的一点技巧

LINK: https://www.qttc.net/374-c-free.html

NOTE: 原创内容,转载请注明出自琼台博客