Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MrAndrey_ka
77 / 77 / 2
Регистрация: 13.05.2009
Сообщений: 536
Записей в блоге: 1
#1

Как описать в структуре строку не через указатель - C++

19.11.2014, 23:36. Просмотров 258. Ответов 1
Метки нет (Все метки)

Есть структура
C
1
2
3
4
5
6
7
8
9
10
struct InfoBuf {
size_t Len;
char Data[]; / ???
static InfoBufType* Create(size_t Size, char* Val){
    InfoBufType* P = (InfoBufType*)new char[Size + sizeof(size_t )];
        P->Len = Size;
                memcpy(P->Data, Val, Size, Size);
        return P;
        }
    };
как видно структура должна создается только динамически с помощью метода Create, при этом выделяется память указанного размера + память для хранения переменной Len, например InfoBufType* I = InfoBufType.Create(7, "Привет") выделит 7 + 2 байт и запишет в первые 2 число 7, а начиная с третьего "Привет". А через I можно обратится к Len и дата но компилятор выдает предупреждение
warning C4200: нестандартное расширение: массив нулевого размера в структуре (объединении)
1> Невозможно создать конструктор копии или оператор присвоения копии, когда UDT содержит массив нулевого размера

как можно написать такую структуру и обойти это предупреждение
(вынести переменную в метод Data() не предлагать, идея в том чтобы ее было видно при отладке, при просмотре значений переменных
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2014, 23:36     Как описать в структуре строку не через указатель
Посмотрите здесь:
Как создать указатель в структуре? C++
Как описать строки в структуре? C++
Указатель на строку: как выводить не всю строку целиком, а конкретную букву C++
Указатель в структуре C++
C++ Указатель на ф-цию в структуре
Указатель на функцию в структуре C++
C++ Ввод строки в структуре, заданной как char *str через scanf (ПОМОЩЬ)
Как сделать доступ через указатель? C++
C++ Как вызвать функцию через указатель?
C++ Как вызвать функцию через указатель?
Как передать массив через указатель? C++
C++ Как объявить указатель на массив через typedef и как инициализировать такой тип

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
5136 / 4456 / 1486
Регистрация: 14.04.2014
Сообщений: 17,695
20.11.2014, 12:57     Как описать в структуре строку не через указатель #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ну опиши массив с запасом.
Yandex
Объявления
20.11.2014, 12:57     Как описать в структуре строку не через указатель
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru