我在Stack Overflow和其他一些文章中读到了关于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)
吗?请给出建议。
injectStrAt
函数内部使用free()
。你需要稍后在数组元素或保存字符串地址的任何变量上使用它。 - StoryTeller - Unslander Monica