【发布时间】:2014-04-13 11:20:38
【问题描述】:
我从 SO 中的许多问题和其他一些关于 c 中释放未使用变量的内存的 free() 函数的文章中阅读。就我而言,我有以下代码块。
char *injectStrAt(char *str, char *strToIn, int pos)
{
char *strC = malloc(strlen(str) + strlen(strToIn) + 1);
strncpy(strC, str, pos);
strC[pos] = '\0';
strcat(strC, strToIn);
strcat(strC, str + pos);
return strC;
}
我使用上述函数将字符串块注入到数组中。我正在使用malloc 创建一个新的char*。在上述情况下,我需要做 free(strC) 吗?请指教。
【问题讨论】:
-
不...你不使用
free()insideinjectStrAt。您需要在数组元素或稍后保存字符串地址的任何内容上使用它。