c语言如何传递二级指针
时间: 2023-11-07 07:12:20 浏览: 126
C语言中,传递二级指针需要注意以下几点:
1. 二级指针指向的是一个指针类型的变量,可以看作是指向指针的指针。
2. 在函数中,我们需要通过二级指针来访问指针指向的数据,需要使用两次解引用操作。
3. 在函数外部定义的指针变量,在传递给函数时需要加上取地址符&,在函数内部需要使用二级指针接收。
下面是一个例子:
```
#include <stdio.h>
#include <stdlib.h>
void allocate_memory(char **p)
{
*p = (char*)malloc(20 * sizeof(char));
sprintf(*p, "Hello World");
}
int main()
{
char *str = NULL;
allocate_memory(&str);
printf("%s\n", str);
free(str);
return 0;
}
```
在上面的例子中,我们定义了一个函数`allocate_memory`,它接受一个二级指针`char **p`,并在函数内部通过`malloc`函数分配了一段内存,将字符串"Hello World"保存到这段内存中。在`main`函数中,我们定义了一个指针变量`char *str`,并将其地址作为参数传递给`allocate_memory`函数。在函数内部,我们使用二级指针`*p`来访问指针指向的数据,即`str`指向的内存块。最后,我们在`main`函数中使用`printf`函数输出了字符串,再使用`free`函数释放了内存。
阅读全文