4 / 4 / 0
Регистрация: 08.11.2011
Сообщений: 137
1

Описание структуры с полем массив

08.12.2011, 01:01. Показов 1081. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Было необходимо описать структуру с именем KLASS, содержащую следующие поля:
1) фамилия,имя
2)день рождения(массив из трех чисел)
Bash
1
2
3
4
5
 #include <stdio.h>
struct KLASS
{ char fam_name[23];
  mas[3] day;
};
хммм....чувствую не так...а как бы еще написать...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.12.2011, 01:01
Ответы с готовыми решениями:

Как передать в функцию указание работы с конкретным полем структуры?
Как передать в функцию указание для работы со структурным объектом без дублирования кода внутри...

Запись/чтение структуры с полем типа String в бинарный файл
Доброго времени суток. Есть слудующая структура struct R { int Number; String Name;...

Работа с памятью: можно ли в массив объектов с полем типа "Родитель", вписать объекты с полем типа "Потомок"
Здравствуйте. Предположим, что у нас есть массив из структур в которых находиться класс Item и...

Найти (через find_if) элемент, у которого поле num совпадает с полем переменой структуры
Имеется структура struct PRIMER { int num, lvl; AnsiString name; }; и вектор ...

19
115 / 115 / 39
Регистрация: 11.10.2011
Сообщений: 649
08.12.2011, 01:08 2
Может, так:
C++
1
2
3
4
5
6
struct KLASS
    {
        char* name;
        char* family;
        int date[3];
    };
1
51 / 51 / 4
Регистрация: 04.04.2011
Сообщений: 209
08.12.2011, 01:14 3
Цитата Сообщение от Heidel Посмотреть сообщение
Может, так:
почему может точно)
1
115 / 115 / 39
Регистрация: 11.10.2011
Сообщений: 649
08.12.2011, 01:14 4
Или даже так
C++
1
2
3
4
5
struct KLASS
        {
                char* family_name;
                int date[3];
        };
0
4 / 4 / 0
Регистрация: 08.11.2011
Сообщений: 137
08.12.2011, 01:16  [ТС] 5
Цитата Сообщение от Heidel Посмотреть сообщение
int date[3]
Думаю это не совсем так. Это что-то вроде выделяемого места/позиций. Может и ошибаюсь
0
51 / 51 / 4
Регистрация: 04.04.2011
Сообщений: 209
08.12.2011, 01:17 6
не согласен для работы будет удобнее отдельно имя отдельно фамилия задания бывают разного плана а вырезать кусок из строки не всегда хочеться

Добавлено через 1 минуту
Цитата Сообщение от Яна_Max Посмотреть сообщение
Думаю это не совсем так. Это что-то вроде выделяемого места/позиций. Может и ошибаюсь
это массив состоящий из 3 элементов date[0] date[1] date[2] каждый элемент будет иметь своё значение
1
115 / 115 / 39
Регистрация: 11.10.2011
Сообщений: 649
08.12.2011, 01:19 7
A555, ну, по запросу ТС, "фамилия, имя" - одно поле, а там уж пусть сама разбирается, как будет удобнее.

Яна_Max, если поле "день рождения" нужно задать как массив из трех чисел, то задается оно именно так.
1
4 / 4 / 0
Регистрация: 08.11.2011
Сообщений: 137
08.12.2011, 01:24  [ТС] 8
A555, а char fam_name [23] в таком случае тоже будет являться массивом?
0
51 / 51 / 4
Регистрация: 04.04.2011
Сообщений: 209
08.12.2011, 01:54 9
да конечно массив
1
542 / 447 / 162
Регистрация: 10.12.2009
Сообщений: 1,857
08.12.2011, 01:57 10
C++
1
2
3
4
5
6
7
8
9
10
struct date
{
    unsigned int day, month, year;
};
 
struct Class
{
    std::string name;
    date d;
};
2
51 / 51 / 4
Регистрация: 04.04.2011
Сообщений: 209
08.12.2011, 01:59 11
не самый просто вариант но сказать нечего он будет самым верным
0
Заблокирован
08.12.2011, 02:08 12
Яна_Max, насколько я понимаю вы пишете на Си. В Си структуры используются в коде немного иначе.
C
1
2
3
4
5
struct list
{
    int value;
    struct list *next;
};
в данном случае list это имя структуры, оно везде в коде должно употреблятся с явным указанием ключевого слова struct. Это видно из того что в самой структуре есть указатель на такую же структуру. Идеальный вариант объявлять так
C
1
2
3
4
5
typedef struct list
{
    int value;
    struct list *next;
} list_t;
тут мы объявляем структуру с именем list и с помощью инструкции typedef обозначаем имя структуры struct list как тип list_t. Далее в коде мы можем уже оперировать типом list_t. Например
C
1
sizeof(struct list) == sizeof(list_t)
1
51 / 51 / 4
Регистрация: 04.04.2011
Сообщений: 209
08.12.2011, 02:10 13
Цитата Сообщение от alkagolik Посмотреть сообщение
Яна_Max, насколько я понимаю вы пишете на Си. В Си структуры объявляются немного иначе.
C
1
2
3
4
5
struct list
{
    int value;
    struct list *next;
};
в данном случае list это имя структуры, оно везде в коде должно употреблятся с явным указанием ключевого слова struct. Это видно из того что в самой структуре есть указатель на такую же структуру. Идеальный вариант объявлять так
C
1
2
3
4
5
typedef struct list
{
    int value;
    struct list *next;
} list_t;
тут мы объявляем структуру с именем list и с помощью инструкции typedef обозначаем имя структуры struct list как тип list_t. Далее в коде мы можем уже оперировать типом list_t. Например
C
1
sizeof(struct list) == sizeof(list_t)
зачем так усложнять? и вы серьёзно с каких пор нормальные объявление структуры отменили?
0
4 / 4 / 0
Регистрация: 08.11.2011
Сообщений: 137
08.12.2011, 02:42  [ТС] 14
Mиxaил, но можно так,как говорилось выше?
0
51 / 51 / 4
Регистрация: 04.04.2011
Сообщений: 209
08.12.2011, 02:44 15
все варианты что писали верны
1
Заблокирован
08.12.2011, 02:46 16
Цитата Сообщение от A555 Посмотреть сообщение
зачем так усложнять? и вы серьёзно с каких пор нормальные объявление структуры отменили?
не путать с плюсами. там такая вещь вполне нормальна
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
struct s
{
    char c;
    char *p;
};
 
int main()
{
    char *p = "123456";
    s n;
    n.c = 'c';
    n.p = p;
}
в Си такой финт не прокатит, тоже самое на Си будет иметь такой вид
C
1
2
3
4
5
6
7
8
9
10
11
12
13
struct s
{
    char c;
    char *p;
};
 
int main()
{
    char *p = "123456";
    struct s n;
    n.c = 'c';
    n.p = p;
}
для того чтобы не заморачиваться на постоянное добавление struct name пре передаче в любую функцию, легче и наверное правильней "затайпдефить" ее в name_t.
0
51 / 51 / 4
Регистрация: 04.04.2011
Сообщений: 209
08.12.2011, 02:48 17
Цитата Сообщение от alkagolik Посмотреть сообщение
не путать с плюсами. там такая вещь вполне нормальна
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
struct s
{
    char c;
    char *p;
};
 
int main()
{
    char *p = "123456";
    s n;
    n.c = 'c';
    n.p = p;
}
в Си такой финт не прокатит, тоже самое на Си будет иметь такой вид
C
1
2
3
4
5
6
7
8
9
10
11
12
13
struct s
{
    char c;
    char *p;
};
 
int main()
{
    char *p = "123456";
    struct s n;
    n.c = 'c';
    n.p = p;
}
для того чтобы не заморачиваться на постоянное добавление struct name пре передаче в любую функцию, легче и наверное правильней "затайпдефить" ее в name_t.
C
1
2
3
4
5
typedef struct list
{
    int value;
    struct list *next;
} list_t;
я имелл в виду это усложнение зачем объявлять в 2 структуры да щё и через указатль на стрктуру
0
Заблокирован
08.12.2011, 02:50 18
Цитата Сообщение от A555 Посмотреть сообщение
я имелл в виду это усложнение зачем объявлять в 2 структуры да щё и через указатль на стрктуру
с опытом поймете.
0
51 / 51 / 4
Регистрация: 04.04.2011
Сообщений: 209
08.12.2011, 02:53 19
Цитата Сообщение от alkagolik Посмотреть сообщение
с опытом поймете.
но не для этой задачи что здесь . здесь не динамическая структура данных
0
Заблокирован
08.12.2011, 04:22 20
A555, вроде как мои посты в этом топике вообще не имеют связи с задачей. Они слегка раскрывают ТС тонкости языка.
0
08.12.2011, 04:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2011, 04:22
Помогаю со студенческими работами здесь

Описание структуры
Здравствуйте. Помогите решить задачу. Заранее спасибо. Описать структуру с именем «Автомобиль»,...

Описание структуры
Помогите сделать лабу=) Описать структуру с именем tsZnak, содержащую следующие поля: *Фамилия,...

Описание структуры
Заранее извиняюсь, если кому-то мой вопрос покажется слишком уж элементарным и не стоящим внимания,...

Описание логической структуры
Пишу курсовую работу, создал сайт на Joomla 3.7.2 и нужно описание логической структуры. То есть из...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru