Указатели в C не указывают на допустимую память (и будут аварийно завершать работу, если вы попытаетесь их использовать), пока вы не укажете их где-то действительным, используя оператор address-of для объекта (&
) или выделив памятьдля них и присвоения этого адреса в указатель (malloc()
и друзья).Конечно, если вы используете оператор адреса, это местоположение может стать недействительным, когда объект выходит из области видимости.Если вы используете malloc()
, это местоположение может стать недействительным при вызове free()
.В любом случае ваш указатель снова станет недействительным.
C также сильно зависит от указателей, так что вы можете рассчитывать на любой код C, который вы пишете, любого размера с ошибкой или двумя такого рода, пока вы не отследите их.вниз и исправить их.Получение ваших исходников мимо компилятора в C на самом деле ничего не значит.Если вы хотите писать на языке, на котором ваш код будет работать в первый раз, когда вы запустите его после прохождения компилятора, вам нужна Ada.