a question about memory access on IA64

From: liuduo <liuduo_at_sinosoft.com.cn>
Date: 2004-01-16 15:02:02
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;

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
Received on Thu Jan 15 22:56:24 2004

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:21 EST