Я ищу умный способ скопировать многомерный массив char в новое место назначения. Я хочу дублировать массив char, потому что я хочу редактировать содержимое без изменения исходного массива.
Я мог бы построить вложенные циклы, чтобы скопировать каждый char вручную, но я надеюсь, что есть лучший способ.
Update:
У меня нет размера 2. уровня. Это только длина (строки).
Код выглядит следующим образом:
char **tmp;
char **realDest;
int length = someFunctionThatFillsTmp(&tmp);
//now I want to copy tmp to realDest
Я ищу метод, который копирует всю память tmp в свободную память и указывает на него realDest.
Обновление 2:
someFunctionThatFillsTmp() - это функция credis_lrange() из Redis C lib credis.c.
Внутри lib tmp создается с помощью
rhnd->reply.multibulk.bulks = malloc(sizeof(char *)*CR_MULTIBULK_SIZE)
Обновление 3:
Я попытался использовать memcpy с этими строками:
int cb = sizeof(char) * size * 8; //string inside 2. level has 8 chars
memcpy(realDest,tmp,cb);
cout << realDest[0] << endl;
prints: mystring
Но я получаю: Программный сигнал: EXC_BAD_ACCESS