On 16 Jan 2004, liuduo wrote: > David: > Sorry, i only describe the process about the error occurs . > > typedef struct b{ > char* pDescriptName; > char* pVendorName; > unsigned int RevisionID; > }B; > > typedef struct pci{ > int c; > struct b bb[512]; > }PCI; > > int main() > { > > > struct pci a; > > //function for operation a > func(&a); > return 0; > } > the func is in an lib, it's an lib export function, and the func is as > follows; Do you mean that it works if you use the first struct definition, and if you pu the func into the same file? Does it have to be in a library to fail? Could it be that you are using different structure packing for building the library, either through compiler options or #pragmas in some other header file? > > func(struct pci* a) > { > char tmp[256]; > for(num=0;num<512;num++) > { > a->bb[num].pDescriptName = (char*)malloc(100); > strcpy(a->bb[num].pDescriptName , "dddd"); > a->bb[num].pVendorName = (char*)malloc(100); > strcpy(a->bb[num].pVendorName , "fffff"); > a->bb[num].RevisionID = 22; > } > a->c = 512; > } > when call the func , the segmentation fault occurs, > and then we modified the struct A as follows > typedef struct pci{ > struct b bb[512]; > int c; > }PCI; > it's normal. > please tell me why? > thanks a lot. > -- > ======================================= > Liu duo > tel:(010)62570007-509 > email:liuduo@sinosoft.com.cn > Sinosoft Software.Co.Ltd. > Esmpro Group.Secic Department > ======================================= > > > > - > To unsubscribe from this list: send the line "unsubscribe linux-ia64" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Martin "all the hardcore hackers use aol" - Joseph "joey" Sarrach