getline为什么两个**
时间: 2023-07-05 15:20:30 浏览: 83
c++中的两种getline用法详解
`getline` 函数有两个星号是因为它的第一个参数是一个字符指针的指针,也就是说我们需要传递一个指向字符指针的指针。这是因为 `getline` 函数会自动分配内存来存储输入的字符串,并将指向该内存的指针存储到传递的字符指针中。因此,我们需要传递一个指针的指针,以便在函数内部修改指向字符指针的指针的值。 例如:
```
char* line = NULL;
size_t len = 0;
getline(&line, &len, stdin);
```
在这个例子中,`&line` 是一个指向 `line` 指针的指针,`&len` 是一个指向 `len` 变量的指针,`stdin` 则表示输入流。`getline` 函数会从输入流中读取一行字符串,并将指向该字符串的指针存储到 `line` 指针中。注意,`line` 指针需要在使用完毕后手动释放内存,例如:
```
free(line);
```
阅读全文