【发布时间】:2014-10-21 06:50:47
【问题描述】:
我正在学习一些新东西,并陷入了一个简单的 strcpy 操作。 我不明白为什么我第一次打印有效,但第二次无效。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char *name;
char *altname;
name=(char *)malloc(60*sizeof(char));
name="Hello World!";
altname=name;
printf("%s \n", altname);
altname=NULL;
strcpy(altname,name);
printf("%s \n", altname);
return 1;
}
【问题讨论】:
-
您没有为 altname/name 分配更多内存。
-
哇,效率太低了。
sizeof(char)保证为1字节,如果要分配固定大小的内存,为什么要使用malloc()?