char* s = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
строковая константа "aaaa", которая хранится в памяти, которая доступна только для чтения.Например, в исполняемых файлах elf они будут храниться в разделе .rodata
, который недоступен для записи.Поэтому, когда вы пытаетесь записать в таком месте, это приводит к ошибке
С другой стороны, char s[]
будет хранить строку в локальной области стека, которую вы можете изменить.