请教个问题,关于结构体指针赋值方面
typedef struct double_link
{
struct double_link *next;
struct double_link *prev;
} DOUBLE_LINK;
typedef struct link_struct
{
DOUBLE_LINK l;
unsigned char *szname;
int ino;
int istart;
int iend;
.............
int ierr;
}LINK_STRUCT;
使用时如下:
int setDevInfo(unsigned char *pstr,int ino,int istart,....)
{
LINK_STRUCT * plink = NULL;
unsigned int lenth = sizeof(*plink) + pstr + 2;
plink = (LINK_STRUCT *)calloc(1, lenth);
if(NULL != plink)
{
plink->szname = unsigned char *)(plink + 1);
plink->ino = No;
...........
strncpy_safe(plink->szname, pstr, strlen(pstr));
}
}
问题是程序中两行加粗的代码很不理解啊!特别是plink->szname = unsigned char *)(plink + 1);,请大家解惑!谢谢