问题:Unhandled exception at 0x10296551 (msvcr90d.dll) in file0718.exe: 0xC0000005: Access violation writing location 0xcdcdcdcd.
代码:
wp=(struct WNews*)malloc(sizeof(struct WNews));
if (wp==NULL)
{
printf("out of memery!\n");
exit(1);
}
struct WNews
{
char *szSN;
unsigned char *pPubKey;
int nPubKeyLen;
};
struct WNews *wp;
scanf("%s%s%d",wp->szSN,wp->pPubKey,&(wp->nPubKeyLen));
printf("wp的各值为:wp.szSN=%s,wp.pPubKey=%s,wp.nPubKeyLen=%d\n",wp->szSN,wp->pPubKey,wp->nPubKeyLen);
我在定义一个结构体变量struct Wnews p;
p=℘这样可以吗
wp->szSN,wp->pPubKey这两个指针需要初始化,并且需要分配相应的空间来保存你用scanf获取的内容。
wp是变量名。变量的话可以这么写。用指针变量我赋值时成功的。想用结构体指针操作。
追答wp=(struct WNews*)malloc(sizeof(struct WNews));
wp->szSN
明明是指针
弄错了,结构体的定义应该是在代码的最前面。就是指针,我明明分配了空间。代码调试没问题,运行就会出上述错误