私は valgrind を満足させ、素晴らしい実装を考え出そうとしていますが、問題が発生しています。基本的に、私がやろうとしているのは、配列内の 2 つの文字列を 1 つに減らすことです。arr
含むとしましょう
{ "One", "Two", "Three" }
また、各文字列のメモリ割り当てが適切に行われていること (a laarr[1] = malloc(strlen("one") + 1)
およびstrcpy(arr[1], "One")
.
私はいくつかの文字列操作を行い、やろうとします:
strcpy(arr[1],"OneTwo");
arr[2] を削除しますが、arr[1] のメモリ割り当てが変更されているため、これは本質的に問題があります。malloc をもう一度実行するのは悪いことだと何かが教えてくれます。
できますrealloc
が、それには arr[2] を解放し、その後のすべてを 1 スペース下に移動して再割り当てする必要があります。私もできますarr[2] = NULL
が、valgrindは同意しません。
どんなヒントでも大歓迎です。