структура с указателем внутри, который является массивом (C) - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть следующая структура:

struct card{
  int id;
  int *products_id;
  int number;}

Дело в том, что указатель products_id должен быть массивом, потому что мне нужно сохранить разные идентификаторы продуктов для одного идентификатора. Я хочу знать, как объявить и использовать этот массив. Также как я могу сохранить нужные мне данные внутри него.

Ответы [ 2 ]

1 голос
/ 11 апреля 2020
#include <stdio.h>
#include <stdlib.h>

struct card{
  int id;
  int *products_id;
  int number;
};


int main ()
{
    struct card c;
    c.products_id = (int*)malloc(sizeof(int)*3); // 3 ints
    c.products_id[0] = 3;
    c.products_id[1] = 4;
    c.products_id[2] = 5;

    for (int i=0; i<3; ++i)
    {
        printf("%d\n", c.products_id[i]);
    }
}

Выход

$ ./a.out 
3
4
5
0 голосов
/ 11 апреля 2020

Если вы хотите хранить идентификатор продукта внутри этой структуры, объявляйте массив

int products_id[MAX_PRODUCTS_ID];

Указатель *products_id может хранить адрес внешней памяти (которым вы должны управлять самостоятельно)

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