作业帮 > 综合 > 作业

详解下面的程序题.#include void main(){ char *p,*q;p=(char *)malloc(s

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/04/26 18:47:36
详解下面的程序题.
#include
void main()
{ char *p,*q;
p=(char *)malloc(sizeof(char)*20);
q=p;
scanf("%s %s",p,q);
printf("%s,%s\n",p,q);
}
若输入abc def,则输出为:( )
详解下面的程序题.#include void main(){ char *p,*q;p=(char *)malloc(s
def,def
缺少个#include
另外用完后把malloc的内存释放掉
程序首先申请了20个字节大小的堆内存,用指针p指向它
然后再用指针q指向它
接着输入两个字符串填到p和q所指向的内存
最后打出p和q指向的内存中的字符串
因为p跟q指向同一块内存,所以在scanf的时候只有一个字符串写入了内存,前面写入内存的字符串被后来写入的覆盖了