On Fri, Dec 09, 2016 at 08:04:11AM -0700, Martin Sebor wrote: > I'm not sure I understand what you mean. Since the following is > valid and meaningful (i.e., initializes the array with the elements > of the string): > > struct Foo { > int a; > char ary[4]; > Foo () : ary ("bob") {} > };
Sure, that has a clear meaning. > then (IMO) so is this: > > struct Foo { > int a; > char ary[]; > Foo () : ary ("bob") {} > }; So what does this mean? Assume that the Foo object lives on the heap and has been allocated with extra space after it? Or shall global/automatic objects of type Foo be allocated with the extra space (like struct Foo x = { 5, "bob" }; in C would do if the Foo () ... line is removed? Something different? Jakub