У меня есть функция, которая принимает char * в качестве одного из своих параметров. Мне нужно манипулировать им, но оставить оригинальный символ * нетронутым. По сути, я хочу создать рабочую копию этого символа *. Кажется, это должно быть легко, но я действительно изо всех сил.
Моя первая (наивная) попытка была создать еще один символ * и установить его равным оригиналу:
char* linkCopy = link;
Конечно, это не работает, потому что все, что я делал, это заставляло их указывать на одно и то же место.
Должен ли я использовать strncpy для достижения этой цели?
Я пробовал следующее, но это вызывает сбой:
char linkCopy[sizeof(link)] = strncpy(linkCopy, link, sizeof(link));
Я что-то упускаю из виду ...?
РЕДАКТИРОВАТЬ: Мои извинения, я пытался упростить примеры, но я оставил некоторые из более длинных имен переменных во втором примере. Исправлено.