Я пытаюсь изменить значение исходной строки, изменив указатель.Изменение значения исходной строки с помощью указателя
Скажем, у меня есть:
char **stringO = (char**) malloc (sizeof(char*));
*stringO = (char*) malloc (17);
char stringOne[17] = "a" ;
char stringTwo[17] = "b";
char stringThree[17] = "c";
char newStr[17] = "d";
strcpy(*stringO, stringOne);
strcpy(*stringO, stringTwo);
strcpy(*stringO, stringThree);
//change stringOne to newStr using stringO??
Как я могу изменить stringOne
так его же, как newStr
с помощью указателя stringO
?
Редактировать: Я думаю, вопрос был довольно неясным. Я хочу, чтобы он изменил последнюю строку, которую скопировал *strcpy
. Так что, если strcpy(*stringO, stringThree);
был последний называется, он будет изменять stringThree
, strcpy(*stringO, stringTwo);
затем string Two
и т.д.
Вы не должны указывать результат 'malloc'. – chris
@chris ([пояснение] (http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc/605858#605858)) –
@ H2CO3 другие ответы на эту тему указывают на веские причины, чтобы включить литье – gta0004