Как это часто бывает, вопрос, который вы задаете, на самом деле не о области действия , а о продолжительности жизни объекта. Время жизни объекта массива b
заканчивается в конце блока if
, и любые попытки получить к нему доступ после этого приводят к неопределенному поведению.
На самом деле, педантично, речь идет о a
даже больше, чем о b
: после окончания срока действия b
значение a
становится неопределенным. Попытка «сделать что-то», опирающееся на неопределенное значение указателя, приводит к неопределенному поведению.