char* string; scanf("%s",&string);错在哪
时间: 2024-02-18 10:02:52 浏览: 26
`char* string` 是一个字符指针,它只是一个指针变量,没有为它分配内存空间。在使用它之前需要为其分配内存空间。
`scanf("%s", &string)` 语句中,`&string` 是一个指向指针的指针,而 `scanf()` 函数需要的是指向字符数组的指针,因此这里的传参方式也是错误的。
正确的写法应该是:
```c
char string[100]; // 假设最多读入 100 个字符
scanf("%s", string);
```
这里我们使用了一个固定长度的字符数组 `string`,可以通过 `scanf()` 函数来读取用户输入的字符串。注意,`scanf()` 函数会在读取到空格或换行符时停止,因此只能读取一段不含空格的字符串。如果需要读取含空格的字符串,可以使用 `fgets()` 函数来代替 `scanf()` 函数。