Нужна помощь в распределении памяти для массива структурных массивов - PullRequest
0 голосов
/ 18 мая 2018

Итак, у меня есть эти структуры

typedef struct user
{
  char username[30];
  char password[30];
  char email[100];
  char nome[30];


}user;
typedef struct admin
{ 
  char nome[30];
  char passwd[30];
}admin;

, и я хочу создать с ними эти массивы

user database[50];
user banlist[100];
admin list[10];

как мне выделить для них память

1 Ответ

0 голосов
/ 18 мая 2018

Вы уже выделили память.Вы сделали это с помощью так называемого статического выделения (или более конкретного автоматического распределения памяти).

Если вы хотите динамически распределять память, вам придется использовать:

user *database = malloc(sizeof(user) * 50); 
user *banlist = malloc(sizeof(user) * 100);
admin *list = malloc(sizeof(admin) * 10);

И незабудьте освободить место, когда вам больше не нужны эти переменные.

free(database);
free(banlist);
free(list);

Для получения дополнительной информации см. также: Разница между статическим выделением памяти и динамическим выделением памяти

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