多个C指针

Fat*_*ske 2 c pointers segmentation-fault

我做了一个测试,我试图将一个数字传递给这样的int指针:

void   mega_pointer(int *********number)
{
    *********number = 1337;
}
Run Code Online (Sandbox Code Playgroud)

但我有一个分段错误.我不明白.有人能帮助我吗?

编辑:我添加我的主要:

int   main(void)
{
   int ********number;

   mega_pointer(&number);
   printf("Result = %d\n", ********number);
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

PS:对不起你的眼睛,我永远不会在真正的程序中使用9*,这只是一个实验^^

Ant*_*ala 5

重要的问题是你如何称呼这个功能; 它需要成功调用9个间接链.查看示例

#include <stdio.h>

void mega_pointer(int *********number)
{
    *********number = 1337;
}

int main() {
    int i = 42;
    int *p1 = &i;
    int **p2 = &p1;
    int ***p3 = &p2;
    int ****p4 = &p3;
    int *****p5 = &p4;
    int ******p6 = &p5;
    int *******p7 = &p6;
    int ********p8 = &p7;
    int *********p9 = &p8;
    mega_pointer(p9);
    printf("%d\n", i);
}
Run Code Online (Sandbox Code Playgroud)

版画 1337

此外,您的程序中存在错误,因为您的代码确实是错误的,并且您正在将1337分配给类型的左值int *(在我的代码中,这将p1代替i;但是如果未启用警告,则会被忽略.如果您编译原始文件代码gcc -Wall,然后你得到warning: assignment makes pointer from integer without a cast [enabled by default].