Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Не могу создать массив типа char, C++

Bloody Знаток (408), на голосовании 3 года назад
Пишу это:
char keys[];

Ошибка:
Недопустимый неполный тип

Что не так?
Голосование за лучший ответ
Хлебушек Оракул (77241) 3 года назад
укажи размер массива в скобках
BloodyЗнаток (408) 3 года назад
Не могу, мне нужен неполный тип
vampires games, что значит "неполный тип"? =)) откуда вообще понятие "неполный тип"? не может быть создан массив неизвестного размера.
Евгений Высочин Просветленный (38033) 3 года назад
#include<stdlib.h>

int n = 5;
char *keys; //указатель на массив

//выделяем память в куче (ОЗУ)
//под массив из 5 элементов:
keys=(char*)malloc(n * sizeof(char));

//если не выделена память под массив,
//то завершаем работу программы с ошибкой:
if(!keys) exit(1);

//увеличиваем размер массива
//ещё на 2 элемента:
keys=(char*)realloc(keys,n*sizeof(char)+2);
if(!keys) exit(1);//если ошибка, завершаем работу
Krab Bark Искусственный Интеллект (300814) 3 года назад
Это расширение C++ от Microsoft.
"Чтобы создать неполный тип массива, объявите тип массива, не указывая для него число повторений. Пример:
char a[]; /* a has incomplete type */
Чтобы дополнить неполный тип массива, объявите то же самое имя ниже в той же самой области видимости и задайте его число повторений, как в следующем примере:
char a[25]; /* a now has complete type */"
Похожие вопросы