История изменений
Исправление firkax, (текущая версия) :
Ясно, ты очередной графоман. Не выдумывай сложности, всё просто.
Например, вот такая конструкция:
pt[5] = 7;
pt
, которое должно быть типа указателя или приводимого к нему (так или иначе это число), прибавить к нему sizeof(*pt)*5
, интерпретировать байты памяти по получившемуся адресу как переменную типа разыменованного типа pt
и записать туда число 7. Важно отметить, что, даже если pt
объявлено как массив, его длина никакого влияния на описанное выше не производит, используется только адрес его начала и тип элемента.Оптимизатор может превратить эту операцию в запись в регистр или вообще исключить из кода. Это, очевидно, неэквивалентное преобразование, несмотря на то, что в большинстве случаев видимый результат работы программы не меняется.
Исходная версия firkax, :
Ясно, ты очередной графоман. Не выдумывай сложности, всё просто.
Например, вот такая конструкция:
pt[5] = 7;
pt
, которое должно быть типа указателя или приводимого к нему (так или иначе это число), прибавить к нему sizeof(*pt)*5
, интерпретировать байты памяти по получившемуся адресу как переменную типа разыменованного типа pt
и записать туда число 7. Важно отметить, что, даже если pt
объявлено как массив, его длина никакого влияния на описанное выше не производит, используется только адрес его начала.Оптимизатор может превратить эту операцию в запись в регистр или вообще исключить из кода. Это, очевидно, неэквивалентное преобразование, несмотря на то, что в большинстве случаев видимый результат работы программы не меняется.