- 论坛徽章:
- 0
|
我的代码如下:
#include <stdlib.h>;
#include <stdio.h>;
#include <string.h>;
struct sStuData
{
int No;
char cName[8];
char cBirthAddr[8];
};
int main()
{
char *buf;
char buf1[15];
struct sStuData stuData;
buf=malloc(10);
memcpy(buf1,"abcdefghijklml",strlen("abcdefghijklml" );
memcpy(buf,buf1,10);
printf("buf = %s\n",buf);
memcpy(stuData.cName,buf, ;
printf("stuData.cName = %s\n",stuData.cName);
}
第一个和第二个memcpy函数在分配的限长内是正确的.
但是第三个 也是限长 为什么会出错 .
有什么解决的好方法吗?
运行结果如下:
buf = abcdefghij
stuData.cName = abcdefghll縡abcdefghijklml
请赐教! |
|