C 创建指针以避免出现分段错误,并使用printf打印指针的值

C 创建指针以避免出现分段错误,并使用printf打印指针的值,c,segmentation-fault,printf,C,Segmentation Fault,Printf,我试图打印指针的值,但得到了一个分段错误。我知道,当我试图使用我不应该访问的内存位置时,会出现分段错误,但我不知道如何避免在这个程序中出现错误,或者如何创建指针,以便一般不会出现分段错误 #include <stdio.h> #include <stdlib.h> void funct(int *p2) { p2 = (int *)malloc(4); *p2 = 14; printf("%d\n", *p2); } int main()

我试图打印指针的值,但得到了一个分段错误。我知道,当我试图使用我不应该访问的内存位置时,会出现分段错误,但我不知道如何避免在这个程序中出现错误,或者如何创建指针,以便一般不会出现分段错误

#include <stdio.h>
#include <stdlib.h>

void funct(int *p2)
{
     p2 = (int *)malloc(4);
     *p2 = 14;
     printf("%d\n", *p2);
}

int main()
{
     int *p;
     funct(p);
     printf("%d\n",*p);

     return 0;
}
#包括
#包括
无效函数(int*p2)
{
p2=(int*)malloc(4);
*p2=14;
printf(“%d\n”,*p2);
}
int main()
{
int*p;
函数(p);
printf(“%d\n”,*p);
返回0;
}
您正在将变量
p
的值传递给函数
funct
。函数中发生的任何事情都不会对其产生任何影响,因此,当您在下一行调用
printf
时,您正在取消对未初始化指针的引用。这会导致显示为segfault的故障

您需要将
p
的地址传递给函数,并更改要匹配的参数类型

我试图打印指针的值,但得到了一个分段错误。我知道,当我试图使用我不应该访问的内存位置时,会出现分段错误,但我不知道如何避免在这个程序中出现错误,或者如何创建指针,以便一般不会出现分段错误

#include <stdio.h>
#include <stdlib.h>

void funct(int *p2)
{
     p2 = (int *)malloc(4);
     *p2 = 14;
     printf("%d\n", *p2);
}

int main()
{
     int *p;
     funct(p);
     printf("%d\n",*p);

     return 0;
}
#包括
#包括
无效函数(int**p2)
{
*p2=malloc(sizeof(int));
**p2=14;
printf(“%d\n”,**p2);
}
int main()
{
int*p;
职能部门(p&p);
printf(“%d\n”,*p);
返回0;
}
您正在将变量
p
的值传递给函数
funct
。函数中发生的任何事情都不会对其产生任何影响,因此,当您在下一行调用
printf
时,您正在取消对未初始化指针的引用。这会导致显示为segfault的故障

您需要将
p
的地址传递给函数,并更改要匹配的参数类型

我试图打印指针的值,但得到了一个分段错误。我知道,当我试图使用我不应该访问的内存位置时,会出现分段错误,但我不知道如何避免在这个程序中出现错误,或者如何创建指针,以便一般不会出现分段错误

#include <stdio.h>
#include <stdlib.h>

void funct(int *p2)
{
     p2 = (int *)malloc(4);
     *p2 = 14;
     printf("%d\n", *p2);
}

int main()
{
     int *p;
     funct(p);
     printf("%d\n",*p);

     return 0;
}
#包括
#包括
无效函数(int**p2)
{
*p2=malloc(sizeof(int));
**p2=14;
printf(“%d\n”,**p2);
}
int main()
{
int*p;
职能部门(p&p);
printf(“%d\n”,*p);
返回0;
}