gets的指针用法,通过分配空间来输入字符,哪里错了?
```c
#include<stdio.h>
int main()
{
char* p = (char*)malloc(20 * sizeof(char));
gets(p);
puts(p);
return 0;
}
```
gets的指针用法,通过分配空间来输入字符,哪里错了?
```c
#include<stdio.h>
int main()
{
char* p = (char*)malloc(20 * sizeof(char));
gets(p);
puts(p);
return 0;
}
```
使用 gets 函数在 C 语言中是不安全的,因为它不会对输入的字符串进行边界检查,容易造成缓冲区溢出攻击。
要安全地读取字符串,可以使用 fgets 函数,它可以指定读取的字符数量,以避免缓冲区溢出。
#include<stdio.h>
int main()
{
char p[20];
fgets(p, 20, stdin);
puts(p);
return 0;
}
回答若有帮助,请你采纳哈!