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*,这只是一个实验^^
重要的问题是你如何称呼这个功能; 它需要成功调用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].
| 归档时间: |
|
| 查看次数: |
162 次 |
| 最近记录: |