一、作业——malloc
题目:输入一个整型数,然后申请对应大小空间内存,然后读取一个字符串,字符串的输入长度小于最初输入的整型数大小,最后输出输入的字符串即可
注意下面问题:
char *p;
scanf("%d",&n);
p=malloc(n);
scanf("%c",&c);//注意在scanf和gets中间使用scanf("%c",&c),去除换行 //?why 因为回车会被gets读取 需要scanf%c来消耗一个回车
scanf("%d")中,假如输入10\n,scanf只会在标准输入缓冲区中读走10,留下\n,这时如果gets()
就会直接跳过,因为gets读取的结束标志是\n
gets(p);
int main() {
int i;//申请的空间
scanf("%d", &i);//输入的整型数
char* p;
p = (char*)malloc(i);//规范写法,把void*型的malloc强制转换,给p申请i个字节的内存空间
scanf("%c", p);
gets(p);
puts(p);
}