当我将字符串声明为charstring[]时,Scanf()有效,但当我将其声明为char*时无效
#include <stdio.h>
#include <string.h>
int main()
{
char t1string[20];
scanf("%s", t1string);
printf("%sn", t1string);
printf("%cn", t1string[4]);
char * t2string;
scanf("%s", t2string);
printf("%sn", t2string);
printf("%c", t2string[4]);
}
为什么 scanf() 在第二种情况下不起作用(字符串被声明为 char *)?
回答
因为在调用scanf函数之前,没有给't2string'分配相应的空间,即't2string'的指针没有指向某个地址
t2string = (char*)malloc(20 * sizeof(char));
// or
char t1string[20];
t2string = t1string;
THE END
二维码