Страница 4 из 4

Re: Объединения

Добавлено: 06 апр 2016, 10:48
Duncon
Romeo писал(а):P.S. А почему ты все вопросы пишешь без знака вопроса в конце? Клавиша "?" поломалась? :)
Наверное это новое веяние в школах, теперь знаки вопроса не нужны!

Re: Объединения

Добавлено: 06 апр 2016, 12:14
Decoder
Первая очевидная ошибка: не выделен массив памяти для ввода строки из консоли.
Поскольку в объединении UNIDATA используется в качестве текста лишь указатель на массив символов, то для каждой новой записи нужно будет динамически выделять память или заранее статически объявить массив строк.
Примерно так...

Код: Выделить всё

char text[10][80] = {0};
Далее при инициализации полей каждой записи (в структуре DATA_RECORD) нужно будет полю name присваивать адрес соответствующей строки символов.

Код: Выделить всё

data[i].name.text = text[i];
Есть ещё много других неявных глюков, но о них потом поговорим, когда они проявятся в процессе работы программы.

Re: Объединения

Добавлено: 06 апр 2016, 14:21
WinMain
Сравнивать даты можно путём преобразования их в целые числа.
Самый простой способ - это использовать формулу N = Year*10000 + Month*100 + Day.
Таким образом дата 06.04.2016 будет равна числу 20160406.
Можно так же использовать специальные библиотечные функции для работы с датой и временем, которые преобразуют заданную дату в число дней, прошедших с определённого момента времени.
Дальше применяется обычное сравнение чисел.

Re: Объединения

Добавлено: 06 апр 2016, 16:23
Kazanove
всем спасибо, все заработало
PS а какие неявные глюки :)