Я пытаюсь сделать функцию, которая может изменять содержимое указанного массива символовC++ передать массив символов функционировать и изменить его
void change_array(char *target)
{
target="hi";
}
int main()
{
char *a[2];
change_array(a[1]);
cout<<*(a[1]);
}
Но тогда содержание [1] остается на 0x0 (пустота)
Есть ответы, рассказывающие, как пройти мимо ссылка, поэтому я постараюсь поставить вопрос о «если вы так делаете». Ответ: * почти наверняка * «нет, нет, ты не должен». Почему вы используете 'char *', а не 'std :: string'? Если у вас нет неотложной и неотложной необходимости для c-строк, я бы предложил вместо этого использовать 'std :: string'. – anjruu
Нет, у меня есть своя причина использовать строку, поскольку я пишу что-то вроде основной войны, которая должна читать массив символов слово за словом. – Echo
вы можете использовать для этого символ char **. но я бы пошла для решения anjruu использовать строку. – hetepeperfan