#c #file #pointers #variables #linked-list
Вопрос:
Мне нужно назначить указатель на массив символов:
char str1[17];
char* h="hey";
str1 = h;
Но я получаю эту ошибку : error C2440: '=' : cannot convert from 'char *' to 'char [17]'
.
Я думал, что имя массива совпадает с указателем на символ, а имя массива-это адрес первого символа массива, поэтому назначение указателя на символ имени массива будет работать.
Я не знаю, почему я получаю ошибку.
Как я могу это исправить?
Комментарии:
1. если вы не можете это исправить. str1 -это постоянный указатель. это невозможно изменить. вы можете скопировать «привет» в str1 , но не изменять str1
2. В этом вопросе нет ничего о Win32, поэтому отредактировано, чтобы удалить тег winapi и упоминание API Win32.
3. Воспользуйся
strcpy()
.
Ответ №1:
Вы не можете str1
указать другой адрес.
Что вы можете сделать, так это использовать strncpy
для копирования содержимого h
в str1
.