2013-06-20 10 views

ответ

2

char * - это константная строка, символ в ней должен быть изменен. S [0] = 'i'; " изменение строки в массиве символов будет в порядке ,

char s[] = "dog"; 
printf ("char is %c\n", s[0]); 
s[0]='i'; 
printf ("s = %s\n", s); 
+0

Я знаю, что это будет нормально, если я сделал это таким образом, но почему он внутренне виноват? – DDukesterman

+0

Я нашел это из Wiki, не очень знакомый с материалами assem :) «Когда программа, содержащая этот код, скомпилирована, строка« hello world »помещается в раздел исполняемого файла программы, помеченный как только для чтения, при загрузке , операционная система помещает его с другими строками и постоянными данными в сегменте памяти, доступном только для чтения ». – Diracnote

Смежные вопросы