KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
The following simple code segfaults under gcc 4.4.4 #include<stdio.h> typedef struct Foo Foo; struct Foo { char f[25]; }; Foo foo(){ Foo f = {"Hello, World!"}; return f; } int main(){ printf("%s\n", foo().f); } Changing the final line to Foo f = foo(); printf("%s\n", f.f); Works fine. Both versions work when compiled with -std=c99 . Am I simply invoking undefined behavior, or has something in the standard changed, which permits the code to work under C99? Why does is crash under C89?
Tags (comma-separated)
Save Edits
Cancel