you can that because the compiler knows how much space to allocate for the string "hello world."
char a[]; a = "hello world";
C won't allow aggregate assignment; you've got an array of chars and a string, which aren't exactly the same thing. you've also got an unknown size - the compiler doesn't know much space to allocate to a.
char a[80]; strcpy(a, "hello world");
An interesting feature of C though is you can assign structs.
Comments
you can that because the compiler knows how much space to allocate for the string "hello world."
char a[];
a = "hello world";
C won't allow aggregate assignment; you've got an array of chars and a string, which aren't exactly the same thing. you've also got an unknown size - the compiler doesn't know much space to allocate to a.
char a[80];
strcpy(a, "hello world");
An interesting feature of C though is you can assign structs.
[code]
typedef struct {
char a[40];
} test;
test t1 = { "hello world" }, t2 = t1;
puts(t1.a);
puts(t2.a);
[/code]
HTH