Все еще учусь больше C и я немного запутался. В моих ссылках я нахожу предостережения о назначении указателя, который не был инициализирован. Они продолжают приводить примеры. Хорошие ответы вчера, кстати, от людей, которые помогают мне с указателями, здесь:
Приоритет, круглые скобки, указатели с итеративными функциями массива
В продолжение я кратко спросил о последней итерации цикла и, возможно, указывал указатель на несуществующее место (т.е. из-за моих ссылок, предупреждающих об этом). Поэтому я вернулся и посмотрел больше и нашел это:
Если у вас есть указатель
int *pt;
затем используйте его, не инициализируя его (то есть, я понимаю, что это означает без оператора типа *pt= &myVariable
):
*pt = 606;
Вы можете получить очень плохой день, в зависимости от того, где в памяти был назначен этот указатель. Часть, с которой у меня возникают проблемы, это то, что при работе со строкой символов что-то вроде этого будет нормально:
char *str = "Sometimes I feel like I'm going crazy.";
Там, где ссылка говорит: "Не беспокойтесь о том, где в памяти размещена строка; она обрабатывается автоматически компилятором". Поэтому не нужно говорить initialize *str = &str[0];
или *str = str;
, Смысл, компилятор автоматически char str[n];
на заднем фоне?
Почему это обрабатывается по-другому? Или я полностью недопонимаю?