求解我的小小问题
#include <stdio.h>
void main()
{
char *item=new char[5];
scanf("%s", item);
printf("item = %s", item);
}
输入多于5个字符(但不能多太多),还是可以全部输出!
急求!!!
#include <stdio.h>
void main()
{
char *item=new char[5];
scanf("%s", item);
printf("item = %s", item);
}
输入多于5个字符(但不能多太多),还是可以全部输出!
急求!!!
使用new动态分配空间的返回值是空间的首地址,而你用一个指向字符的指针接收相当于定义了一个字符串指针而字符串指针的长度是不确定的因此分配的空间大小是没有用的。
你输入时使用字符串输入格式并用指针名(scanf("%s", item);)所以当你输入时你可以多于五个字符而且当你输完时系统自动加上结束符;你输出时使用字符串输出格式并用指针名(printf("item = %s", item);)所以直到遇到结束符才停止输出因此可以全部输出。