Declaring Strings - Programmers Heaven

Howdy, Stranger!

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

Categories

Declaring Strings

tubbytubby Posts: 7Member
I can write char a[] = "hello world"; , but i can not write
char a[];
a = "hello world";
why so?

Comments

  • pseudocoderpseudocoder Posts: 691Member ✭✭✭
    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.

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

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

    puts(t1.a);
    puts(t2.a);
    [/code]

    HTH
Sign In or Register to comment.