"Hello";
В первом случае, text это указатель на массив (массив распадается на указатели) и получается то же самое что и во втором варианте. Это если я правильно понимаю)
Не, не правильно, в первом случае, если опустить бред с инициализацией, это массив указателей
char* text[] = {"Hello World"} а так?
Массив из указателей с размером 1
А что такое массив указателей?
Массив, элементы которого являются указателями
Так в первом же случае указатель на массив указателей
Указатель на массив указателей это char *(*ptr)[N]
Массив это указатель на стеке?
Массив - это набор элементов определённого размера определённой длины)
Ну под это определение почти все динамические структуры попадают
С доступом по индексу из фиксированного целочисленного диапазона, забыл добавить
То есть это не массив? float arr[10]?
Ну по факту да, но тогда это тоже массив char *arr;
Нет, это указатель
Под определение же подходит
размер должен быть известен при компиляции
Точнее память выделена на этапе компиляции?
Немного не в ту степь вы пошли, если вы сделаете структуру из указателя(или fam) и переменной size_t, хранящей длину, то это будет массивом, сам же указатель массивом являться не может
Ну тогда размер может тоже меняется в рантайме
Под ваше определение же не подходит
Почему не подходит?
Определённого, а не фиксированного, это создаёт инвариант.
Обсуждают сегодня