|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Victor Wagner 2:5020/400 22 May 2002 23:22:44 To : Anton Kovalenko Subject : Re: c и указатели на строки -------------------------------------------------------------------------------- Anton Kovalenko <a_kovalenko@fromru.com> wrote: AK> Said Chavkin wrote: SC>> char *s="some string"; AK> ... SC>> while (*s++ = *sn++) ; //падает в кору здесь SIGSEGV SC>> есть другая SC>> char s[]="some string"; AK> ... SC>> while (*s1++ = *sn++) ; //а здесь все в порядке SC>> кто знает почему? AK> Строковые константы расположены в readonly памяти. gcc AK> -fwritable-strings позволяет этого избежать, если очень AK> нужно. И человек ничего не понял. Точнее не понял почему во втором случае все Ок. В первом случае у нас есть переменная указатель, инициализированая указателем на строку, лежащую в read-only памяти. Во втором - массив символов, т.е. переменная, лежащая в read-write памяти, инициализированная символами 's' 'o' 'm' 'e' ' ' 's' 't' 'r' 'i' 'n' 'g' '\0' Которые никто не мешает перезаписать. -- пользователь Ю. Конечный из г. Великоламерска. --- ifmail v.2.15dev5 * Origin: Free Net of Leninsky,45 (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/1517887560774.html, оценка из 5, голосов 10
|