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

Различные структуры в структуре - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Списки. К каждому элементу списка прибавить значение следующего элемента списка. Последний элемент не менять http://www.cyberforum.ru/cpp-beginners/thread1023480.html
Данные списка должен ввести пользователь. Результат нужно сформировать в начальном списке, никаких новых списков создавать нельзя. Спасибо!
C++ Считывание данных с файла Здравствуйте, помогите пожалуйста, программа не может прочитать данные из файла и я не знаю почему, вот код (dev-c++) if (*c==13) { in.open(files); unsigned short coll; in>>coll; for (unsigned short i=0;i<coll;i++) { in>>n>>m; a=new double; http://www.cyberforum.ru/cpp-beginners/thread1023477.html
с++ while return C++
Задание:Вводится точность e. Вычислить сумму ряда 1-1/3+1/5-1/7.... сумма Вычисления продолжать до тех пор, пока очередное слагаемое не станет меньше e. Вывести рядом пи\4 и сравнить с полученной суммой. Наработки: "x<=1" болжен быть меньше. Спросить "e" .Начать складывать по формуле. Если очередное слагаемое меньше "e" , то прерывается сложение и выдаться сумма. Помогите с код, вот...
C++ Задание из Страуструпа
Добрый день,дорогие форумчане.В общем читаю книжечку Страуструпа.Выполняю задания.Вот что-то у меня ступор.Прошу Вашего совета:) "Задание:Напишите программу,которая подсчитывает количество повторов пар букв в строке типа string.Например, пара букв "ab" входит в строку "xabaacbaxabb" дважды" Мой код: #include "stdafx.h" #include <iostream> #include <string> #include <locale>
C++ Вывести в консоль в виде таблицы значения чисел в 16 и 10-ричном формате http://www.cyberforum.ru/cpp-beginners/thread1023470.html
Обьясните пожалуйста задание, и как его можно реализовать, выучили указатели. Задание:–виведення на консоль у вигляді таблиці значень чисел у десятковому та шістнадцятковому форматі, та їх адрес у оперативній пам’яті для типів int, long, float, double, char, bool; для каждого типа писать указатель? мне кажется єто не рационально, да и в структуру как это передать не могу себе представить. ...
C++ Условные операторы Задание: создайте условный оператор, который присваивал бы x*y для четного x, в противном случае для нечетного x и y, не равного 0, присваивал бы x/y; наконец, если ни одно из предыдущих условий не вычисляется в true, выводил бы на экране сообщение, что значения равны 0. #include <iostream> using namespace std; int main (void) { int x, y; cin >> x >> y; x = (x % 2 != 0 && x != 0) ? x/y : x... подробнее

Показать сообщение отдельно
QVO
 Аватар для QVO
636 / 447 / 32
Регистрация: 26.10.2010
Сообщений: 1,261
Записей в блоге: 4
Завершенные тесты: 2
30.11.2013, 19:58     Различные структуры в структуре
Здравствуйте форумчане.

Пишу чат с возможностью регистрации, входа, добавления\удаления пользователей и т.д.
Понадобилось в структуру TPacket "паковать" другие структуру и отправлять с сервера на клиент и наоборот.

Структуры
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
enum TPacketType {
        ptRegistrations, ptLogins, ptUnLogins, ptMessages, ptAdds, ptDeletes, ptError
};
// Структура с данными для регистрации
#pragma pack(push,1)
struct TRegistration
{
    AnsiString Name;        
    AnsiString Login;
    AnsiString Password;    
} Registration;
#pragma pack(pop)
// Структура с данными для входа
#pragma pack(push,1)
struct TLogin
{
    AnsiString Login;
    AnsiString Password;    
} Login;
#pragma pack(pop)
// Пакет куда пакуются другие структуры
#pragma pack(push,1)
struct TPacket
{
    TPacketType Type;
    void *Struct;
} Packet;
#pragma pack(pop)


Делаю это так, заполняю какую-то структуру с сообщением, потом копирую ее в TPacket и отправляю.
Проблема в том, что делаю я это не правильно и поле Packet.Struct пустое.

C++
1
2
3
4
5
6
7
8
9
10
    
    // Заполняю данные для входа на сервер
    Login.Login = "Anna";
    Login.Password = "123456";
    // Указываю, что это данные для входа на сервер
    Packet.Type = ptLogins;
    // Копирую Login в Packet.Struct
    memcpy(&Login, &Packet.Struct, sizeof(TLogin));
    // Отправляю на сервер
    ClientSocket1->Socket->SendBuf(&Packet,sizeof(TPacket));
Подскажите пожалуйста идею получше, как реализовать данный момент, или в чем моя ошибка.
Заранее спасибо.

Добавлено через 20 часов 15 минут
Нужно так
C++
1
memcpy(&Packet.Struct, &Login, sizeof(TLogin));
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru