Я блуждал в SO и видел этот вопрос. Затем я начал задаваться вопросом, могу ли я переполнять argc.
Стандарт говорит, что argv[argc]
должен быть нулевым указателем, но это будет false, если переполнение argc.
(I написал небольшую программу на C и python script для тестирования, но получил MemoryError
.)
Спасибо!
Обоснование для международного стандарта - Языки программирования - C §5.1.2.2.1 Запуск программы
Спецификация
argc
иargv
в качестве аргументовmain
распознает обширную практику.argv[argc]
требуется, чтобы он был нулевым указателем, чтобы обеспечить избыточную проверку для конца списка, также на основе обычной практики.