给出以下简短示例
FILE *p = fopen("foo.txt", "r");
FILE f = *p;
int i;
fscanf(p, "%i", &i); // works just fine
fscanf(&f, "%i", &i); // segmentation fault
我读了关于小FILE
,FILE *
以及实际的结构类型_IO_FILE
,但它是不是真的我清楚是什么原因导致在第二次调用分段错误fscanf
。
因此,除了p
与&f
包含不同的地址,除非这是参与(我认为这是),之间有什么区别&f
,并p
在这方面?
C标准(C99 7.19.3 / 6,C11 7.21.3 / 6)说:
用于控制流的FILE对象的地址可能很重要。不需要提供FILE对象的副本来代替原始对象。
所以你被警告了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句