Declaring Strings

I can write char a[] = "hello world"; , but i can not write
char a[];
a = "hello world";
why so?


  • char a[] = "hello world";

    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.

    typedef struct {
    char a[40];
    } test;

    test t1 = { "hello world" }, t2 = t1;


Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


In this Discussion