[问题] 如何在struct指标中使用enum?

楼主: OPIV (Monitor)   2014-11-20 00:48:27
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
Linux, GCC
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
在struct中使用enum已经试过没问题了
可是如果在struct指标里用enum,在执行的时候就会core dumped(是内存区段错误)
程式码:
#include <stdio.h>
typedef enum
{
MON, TUE, WED, THU, FRI, SAT, SUN
} day;
typedef struct
{
int date;
day dayofweek;
} *mystruct;
int main(int argc, char *argv[])
{
mystruct ms;
ms->date = 17;
printf("%d\n", ms-date); //到这行都OK
ms->dayofweek = MON; //这里出现问题
printf("%d\n", ms->dayofweek);
return 0;
}
喂入的资料(Input):
预期的正确结果(Expected Output):
17
0
错误结果(Wrong Output):
17
core dumped (内存区段错误)
补充说明(Supplement):
如果我用
typedef struct
{
int date;
day dayofweek;
} mystruct;
mystruct ms;
ms.dayofweek = MON;
printf("%d\n", ms.dayofweek);
是可以正常工作的
只是换成指标就会错误......
作者: LPH66 (-6.2598534e+18f)   2014-11-20 01:00:00
mystruct 是指标, 刚生出来它并不指到一个合法位置你必须要 malloc 一块给它17 没事是运气好而已这跟 enum 没有关系
作者: karose (karose)   2014-11-20 01:02:00
你的mystruct是指标,要先malloc.
作者: Caesar08 (Caesar)   2014-11-20 07:10:00
搞错重点了,你的mystruct没有malloc
作者: anakin2 (No.31)   2014-11-20 23:11:00
恭喜你跨过重要的一关
作者: jammy50605 (小刀)   2014-11-21 03:01:00
作者: EdisonX (卡卡兽)   2014-11-22 00:01:00
恭喜你.. 得到 memory leak 一玫 ...
作者: jammy50605 (小刀)   2014-11-24 02:32:00
楼上XDDDDD
作者: dirkc (3781615)   2014-11-24 11:55:00
malloc后可以free;man malloc有写,在同一行很难不读到

Links booklink

Contact Us: admin [ a t ] ucptt.com