- C не проверяет границы массива. Ошибка сегментации будет возникать только в том случае, если вы попытаетесь разыменовать указатель на память, в котором у вашей программы нет разрешения на доступ. Просто пройти мимо конца массива вряд ли вызовет такое поведение. Неопределенное поведение - это просто неопределенное. Это может показаться , что работает нормально, но вы не должны полагаться на его безопасность.
- Ваша программа вызывает неопределенное поведение, обращаясь к памяти за конец массива. В этом случае одна из ваших записей
str[i] = c
перезаписывает значение в i
. - C ++ имеет те же правила, что и в C.
задан Jason Gennaro 3 January 2012 в 01:40
поделиться