我试图满足 valgrind 并提出一个很好的实现,但我遇到了一个障碍。本质上,我要做的是将数组中的两个字符串减少为一个。假设arr
包含
{ "One", "Two", "Three" }
并且每个字符串的内存分配已按应有的方式完成(laarr[1] = malloc(strlen("one") + 1)
和strcpy(arr[1], "One")
.
我做了一些字符串操作并尝试做:
strcpy(arr[1],"OneTwo");
并删除 arr[2] 但这本质上是有问题的,因为 arr[1] 的内存分配已经改变。有些事情告诉我,再次做 malloc 会很糟糕。
我可以这样做realloc
,但这需要释放 arr[2] 并将其后的所有内容向下移动一个空格并重新分配。我也可以,arr[2] = NULL
但 valgrind 不同意。
任何提示将不胜感激。