From: Erik Lindblad Date: 2009-09-13T08:15:10+09:00 Subject: Re: Using Data_Make_Struct for incomplete type On 12 Sep, 21:39, Joel VanderWerf wrote: > Erik Lindblad wrote: > > Hi all > > > I am writing a Ruby wrapper for a C library. I can wrap some of the C > > structs with Data_Make_Struct but for one of them I get "invalid > > application of sizeof to incomplete type". I expect this has something > > to do with that the compiler cannot find a definitive size of the > > struct. > > Have you included all the relevant headers? > > -- >        vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407 Yes, I can do both Data_Wrap_Struct for other structs in the same library, and create "instances" of the struct in question. The struct is defined in a lib that I only have as a binary so I cannot experiment with the source. I have tried both with Data_Make_Struct and with a construct I found in a blog post: struct_name* s = (struct_name*)malloc(sizeof(struct_name)); VALUE obj; obj = Data_Wrap_Struct(klass, 0, terminate, s); Both result in the same compile message: invalid application of sizeof to incomplete type s The struct contains arrays of pointers to other structs so my guess is that it has something to do with that the compiler cannot figure out a definitive size to use for the struct. If that is the case I have no idea how to work around that. Thankful for any input. Regards Erik