Если вы используете C ++, вы правы, за исключением того, что вам нужно сделать secondValue
на один символ больше:
secondValue = new char[strlen(value) + 1];
Строки в стиле C заканчиваются символом '\0'
, что также требуетместо для хранения.
Если вы используете C вместо C ++, нет new
или delete[]
, и вы должны использовать функции malloc()
и free()
вместо:
secondValue = malloc(strlen(value) + 1);
...
free(secondValue);
В любом случае обратите внимание, что в примере value
является строковым литералом, который нельзя удалить / освободить.Вы должны только удалить / освободить то, что вы выделили с новым / malloc соответственно.