Если у меня есть структура внутри другой структуры, и я пытаюсь иметь их внутри массива - PullRequest
0 голосов
/ 23 марта 2020

У меня есть структура с именем item, теперь у меня есть другая структура с именем array, которая вызывает item. struct item arrayofList должен иметь размер 5

#include <stdio.h>
#include <string.h>
#define MaxItems 5
#define NameLength 20
#define UnitLenght 6



struct item
{
    char name[NameLength];
    float amount;
    char unit[UnitLenght];
};
struct array
{
    struct item arrayofList;
};

int main(void)
{
    struct array shopping[MaxItems];

Я даю список размером 5 или я делаю это неправильно

Ответы [ 3 ]

0 голосов
/ 23 марта 2020

Вы, вероятно, хотите это:

#include <stdio.h>
#include <string.h>

#define MaxItems 5
#define NameLength 20
#define UnitLenght 6

struct item  // one item
{
    char name[NameLength];
    float amount;
    char unit[UnitLenght];
};

int main(void)
{
    struct item shopping[MaxItems];  // array of MaxItems struct items
    ...
}
0 голосов
/ 23 марта 2020

Зачем вам нужен массив struct? Вы можете просто написать: struct item shopping[MaxItems];

0 голосов
/ 23 марта 2020

Если вы хотите, чтобы struct array содержал массив из 5 LIST с, вы должны объявить его следующим образом:

struct array
{
    struct LIST arrayofList[MaxItems];
};

, а затем просто использовать его как

int main(void)
{
    struct array shopping;

Но я согласен с Jabberwock, в настоящее время этот struct array является излишним, и вы можете достичь той же функциональности, удалив struct array в целом и используя вместо него массив LIST:

int main(void)
{
    struct LIST shopping[MaxItems];

Если только вы намереваетесь в конечном итоге добавить больше атрибутов к struct array, это будет проще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...