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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Обращение потока к функции-члену класса http://www.cyberforum.ru/cpp-beginners/thread1305573.html
Есть Класс MainWindow, функцией-членом которой выступает Reader(), при попытке обратиться поток к данной функции-члену из main'a через экземпляр класса w for(i=0;i<M;i++) { RE...
C++ Найти сумму нечетных делителей натурального числа Найти сумму нечетных делителей натурального числа. Hапишите полный текст программы пожалуйста. Спасибо http://www.cyberforum.ru/cpp-beginners/thread1305567.html
C++ Определить, сколько раз меняется знак в последовательности чисел, введенных с клавиатуры, применив массив
Помогите пожалуйста! Записать программу, определяющую сколько раз меняется знак в последовательности чисел, введенных с клавиатуры, применив массив на С++
Метод Якоби. Выводит результат -1.INF и -1.IND C++
Вот сделал прогу, но почему-то вместо нормального результата выводит это: result|x: -1.#INF -1.#IND -1.#INF -1.#IND -1.#IND нигде на 0 не делится да и числа маленькие. Подскажите в чем...
C++ Как можно редактировать инструмент класса CListCtrl извне. Возможны ли альтернативы? http://www.cyberforum.ru/cpp-beginners/thread1305563.html
Добрый день! Передо мной стоит задача разработать приложение c GUI. необходимо выводить название файлов, содержащихся в папке, в виде списка. А также необходимо осуществить возможность...
C++ Вычисление определенных интегралов методом прямоугольников Дана тема: Вычисления определенных интегралов методом прямоугольников. К примеру, дан интеграл, от а до b, количество шагов N, посчитать сумму. Нужно в C++ сделать. Сижу уже второй час,... подробнее

Показать сообщение отдельно
MrAndrey_ka
78 / 78 / 2
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1

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

19.11.2014, 23:36. Просмотров 277. Ответов 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() не предлагать, идея в том чтобы ее было видно при отладке, при просмотре значений переменных
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru