c - initializing char array in main vs in a struct -
im attempting initialize array of chars
if in main works fine
char arr1[20] = "initial"; printf("%s", arr1); but if seek anywhere else such in struct, seek utilize in main function like
struct foo { char arr1[20] = "initial"; } int main(void) { struct foo foobar; printf("%s", foobar.arr1); } or
struct foo { char arr1[20]; } int main(void) { struct foo foobar; foobar.arr1 = "initial"; printf("%s", foobar.arr1); } i start getting errors. why 1 work , other doesn't?
you mixing struct definition initialization of variable.
the struct definition says types create struct , names are, e.g.:
struct foo { char arr1[20]; }; says "struct foo type we've defined consists of array[20] of char". there no actual variables of type yet.
then can declare , initialize instances of type, in similar way how declare , initialize arr1 in first example:
struct foo foobar = { "initial" }; c arrays string struct char
No comments:
Post a Comment