Я относительно новичок в C в целом, и у меня есть проблема с некоторым кодом. Это довольно простой код: целью кода является копирование заданного массива указателей на символы или, другими словами, источника char **, в указанное место назначения char **.
Проблема, с которой я сталкиваюсь, заключается в том, что иногда (обычно, когда у меня более 2 строк в исходном коде) первый элемент полностью повреждается, и когда я в конечном итоге распечатываю пункт назначения, он печатает что-то вроде "; @?" для первого элемента, а остальные элементы печатаются нормально.
Код, который выполняет копирование:
void CopyArrayOfStrings(char **source, int numStrings)
{
char **destination = malloc(numStrings);
for (int i = 0; i < numStrings; i++)
{
destination[i] = malloc(strlen(source[i] + 1);
strcpy(destination[i], source[i]);
}
}
Обратите внимание, что я пропустил код, проверяющий, является ли результат malloc равным NULL.