我如何释放这个char **数组?

时间:2017-01-10 12:51:34

标签: c

我创建了这个数组:

char** command=malloc(sizeof(*command)*MAX_COMMANDS+1);

然后每个命令[i]得到这个:

command[i]=malloc(sizeof(*command[i])*strlen(token)+1);

如何释放命令2d数组?

3 个答案:

答案 0 :(得分:6)

有一个拇指规则 - 每次对malloc的调用都对应于一次免费调用,通常你按照其分配的相反顺序释放内存。在这种情况下,您应该针对每个command重复free调用command[i],然后才能free command

答案 1 :(得分:1)

   int i =0;
    while (i < MAX_COMMANDS)
    {
      free(command[i]);
      ++i;
    }

答案 2 :(得分:0)

你可以这样做。

     49.532819434711516000934361130%