【发布时间】:2012-12-03 13:02:34
【问题描述】:
我遇到了动态内存分配问题。这是代码,请帮忙。
#include <stdio.h>
int i;
typedef struct{
int A;
}node;
typedef struct Model
{
node *m;
} Model;
Model M;
void initialize(Model *a, int size)
{
a->m = (node*) malloc(size);
}
void model_init(Model *a, int len)
{
int i;
for (i=0;i<len;i++) a->m[i].A = 20;
}
int main()
{
initialize(&M ,10);
model_init(&M, 10);
for (i=0;i<10;i++) printf("%d\n",M.m[i].A);
}
我正在尝试创建一个具有 10 个节点的模型,并且我想将值分配给变量 A 中的节点。printf 显示 (-1819044973, -1819044973, 14128019, 3969, 0, 0, 0 ...)
我只想说例如 M.m[2].A=20
我做错了什么?请帮忙。
TY
【问题讨论】:
-
您的代码有泄漏。我没有看到
free()对应的malloc -
为什么要在全局范围内声明主局部变量?
标签: c memory dynamic struct allocation