【发布时间】:2013-12-26 01:16:16
【问题描述】:
struct element {
int val;
int z;
};
typedef struct element ELEM;
看这个例子:
int main()
{
ELEM z;
z = 6;
printf("%d",z);
}
一切正常,但如果我有一个指向结构的指针,我需要编写如下代码:
ELEM *z;
p = (ELEM*)malloc(sizeof(ELEM)); // Without this will not work
(*p).val = 3;
p = (ELEM*)malloc(sizeof(ELEM));
printf("%d",(*p).val);
【问题讨论】:
-
因为指针不是“事物”,只是指向它的指针。你必须以某种方式分配“东西”。
-
另外,我不知道“z = 6”应该做什么。这甚至可以编译吗?
-
你泄露了你 malloc 的第一个 ELEM。
-
事实上,这些东西有用吗???
-
[插入关于不强制转换 malloc 结果的强制性评论]