需要帮助为数组的结构数组

时间:2018-05-18 19:30:22

标签: c memory-management

所以我有这些结构

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 :(得分:2)

你已经分配了内存。你通过所谓的静态分配(或更具体的自动内存分配)来做到这一点。

如果要动态分配内存,则必须使用:

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

当你不再需要那些变量时,不要忘记释放空间。

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

有关详情,请参阅:Difference between static memory allocation and dynamic memory allocation