b0207191 发表于 2008-3-14 21:51

那个。。c语言问题。。急

: 有这样的结构
: typedef struct{
: }my_struct
: 和这样的函数
: void my_set(my_struct *foo)
: {
:   get(foo->... )
: }
: 如果代码中这样写
: my_struct *a;
: my_set(a);
: my_struct a;
: my_set(a);
: 这两种能否编译过?如果编译能过,运行情况相同么?

fmeric 发表于 2008-3-14 22:32

widder 发表于 2008-3-15 10:23

第一种可以编译通过,会有个警告,但运行会崩溃

第二种编译不过

话说,这种问题试验下不就知道了了,做程序要有试验精神

b0207191 发表于 2008-3-15 10:30

其实目前情况是“编译能过,运行情况相同”
谁能解释一下?

widder 发表于 2008-3-15 11:40

问题是:   get(foo->... )里干了啥

还有你用了啥编译器

PuzzleOfPhay 发表于 2008-3-15 12:29

明显get(foo->...)是得到foo结构里面的某个属性吧

第一个是个悬挂指针没有指向具体的东西 会有warnigs
第二个应该是可以的

至于结果我觉得应该不一样吧 猜的

b0207191 发表于 2008-3-15 12:34

编译器是gcc
页: [1]
查看完整版本: 那个。。c语言问题。。急