char *s; scanf(“%s”,s) 这个语句错在哪里了?求解释

如题所述

第1个回答  2012-09-09
char *s;
s = (char*)malloc(sizeof(char));
scanf("%s",s);
s只是一个指针,并没有给他分配内存空间,所以先要用malloc(需包含头函数“stdlib.h”)给他分配内存空间,然后在给他赋值本回答被提问者和网友采纳
第2个回答  2012-09-09
s是指针变量,只能存放4个字节的地址,如果你要这样写就必须用s=new char[N];给它开辟一段内存空间就可以了,你想给它多少字节,N是等于多少。
第3个回答  2012-09-09
%s应该为%c,因为S是一个字符型的指针!!
第4个回答  2012-09-09
char *s = malloc(255);
scanf(..)
相似回答