
Сообщение от
Nekto
Вы сейчас ломаете мой взгляд на массивы... Почему память, выделенная с помощью new, к которой можно обращаться через индекс, не считается массивом?
Потому что "массив" - это синтаксическая конструкция языка. При помощи которой, вы можете создавать различные типы данных.
Например: int a[10] и int b[20] - это два принципиально разных типа данных.
Так же, эти два принципиально разных типа данных принципиально отличаются от типа данных "указатель".
Соответственно, правомерно сделать проверку типов. Функция может принимать только массив из 10 элементов, и браковать на стадии компиляции все прочие массивы, в том числе - сырые указатели.
Что касается адреса памяти - это всего лишь адрес. "Массив" на языке с++ не является "адресом памяти".