### Question 1.31

This code, straight out of a book, isn't compiling:

    f()
    {
    	char a[] = "Hello, world!";
    }

Perhaps you have a pre-ANSI compiler, which doesn't allow initialization of ``automatic aggregates'' (i.e. non-`static` local arrays, structures, and unions). As a workaround, you can make the array global or `static` (if you won't need a fresh copy during any subsequent calls), or replace it with a pointer (if the array won't be written to). (You can always initialize local `char *` variables to point to string literals, but see question 1.32.) If neither of these conditions hold, you'll have to initialize the array by hand with `strcpy` when `f` is called. See also question 11.29.

Read sequentially: prev next up top

This page by Steve Summit // Copyright 1995 // mail feedback