请教:strdup与strcpy具体的区别
strdup与strcpy具体的区别:
我分别在XP的环境和linux环境下编译运行C代码,我发现一个不解的现象:
现象描述:
两个字符串 char* from, char* to;要把from的内容复制给to。
我在XP下,用strcpy(to, from)出现memory问题,于是换成
to = strdup(from),就运行正常。
而在linux下,用to = strdup(from)出现memory问题(报错信息:* glibc detected *** free(): invalid next size (fast): 0x09a8d868 ***),于是换成strcpy(to, from),就运行正常。
请大家指教:
1,如何解释我遇到的这种现象;
2,strdup与strcpy具体的区别,以及在不同操作系统下的使用。
谢谢!