Я пытаюсь удовлетворить valgrind и предложить хорошую реализацию, но я сталкиваюсь с загадкой.По сути, я пытаюсь сократить две строки в массиве до одной.Допустим, arr
содержит
{ "One", "Two", "Three" }
И что выделение памяти для каждой строки было сделано в порядке (а-ля arr[1] = malloc(strlen("one") + 1)
и strcpy(arr[1], "One")
.
Я делаю некоторыеманипулирование строкой и попробуйте сделать:
strcpy (arr [1], "OneTwo");
и удалить arr [2], но это по своей сути проблематично, потому чтовыделение памяти для arr [1] изменилось. Что-то подсказывает мне, что повторное выполнение malloc было бы плохим.
Я мог бы сделать realloc
, но для этого потребовалось бы либо освободить arr [2] и сдвинуть все после него на единицупространство и перераспределение. Я мог бы также сделать arr[2] = NULL
, но Вэлгринд не согласен.
Любые намеки будут с благодарностью.