求助,这段代码为什么编译出错阿?
main(argc,argv)
int argc;
char *argv[];
{
char c1[100];
char c2[10];
char c3[100];
int tt;
struct aa
{
char bb[10];
char cc[10];
};
struct aa aa;
struct aa dd;
strcpy(aa.bb, "abc ");
strcpy(aa.cc, "lzh ");
memset(&dd,0,sizeof(dd));
memcpy(&dd,aa,sizeof(dd));
printf( "\ndd.bb=%d ",dd.bb);
printf( "\ndd.cc=%s ",dd.cc);
}
编译后就提示
1506-280 (S) Function argument assignment between types "const void* " and "struct aa " is not allowed.这是什么原因?请教各位大侠了!
[解决办法]
memcpy(&dd,&aa,sizeof(dd));这里少了个&
[解决办法]
改成下面这样就能正常运行了,
main(argc,argv) //这种写法太旧了,最好改成:main(int argc,char *argv[])
int argc;
char *argv[];
{
char c1[100];
char c2[10];
char c3[100];
int tt;
struct aa
{
char bb[10];
char cc[10];
};
struct aa a; //不要和结构体同名,改成a和b
struct aa d;
strcpy(a.bb, "abc ");
strcpy(a.cc, "lzh ");
memset(&d,0,sizeof(d));
memcpy(&d,&a,sizeof(a)); //在第二个参数前加&,sizeof要取a的大小
printf( "\ndd.bb=%d ",d.bb);
printf( "\ndd.cc=%s ",d.cc);
}