在使用指向指针的指针时,在 scanf 中传递变量的地址可以实现将变量的地址传递给指向指针的指针。代码示例如下:
#include
#include
int main() {
int **ptr;
int *p;
int n = 2, m =3;
p = (int*) malloc(n * m * sizeof(int));
ptr = (int**) malloc(n * sizeof(int));
for(int i=0; i
在上述代码中,我们首先定义了一个指向指针的指针 ptr,一个指针 p,以及两个常量 n 和 m。接着,我们用 malloc 函数在堆上分配了一个大小为 n * m 的连续空间,并将得到的地址赋值给了 p。这个地址称为 p 的地址。接着,我们又用 malloc 函数在堆上分配了一块空间,大小为 n 个指针的空间。为了快捷地将这些指针初始化为指向 p 中的行,我们使用了一个 for 循环用 p 的地址为 ptr 中的每个指针都赋值。之后的两个 for 循环分别负责输入和输出操作。在输入时,我们使用 scanf 函数通过传递一个地址,将输入的值直接存入指针中。最后,我们在输出操作中打印出了ptr中存储的数字。最后,我们使用 free 函数释放掉了在堆上分配的空间。