【发布时间】:2012-09-16 18:42:55
【问题描述】:
以下代码给出了分段错误。我不知道为什么。请看..
#include <stdio.h>
#include <stdlib.h>
int main()
{
int **ptr;
int *val;
int x = 7;
val = &x;
*ptr = (int *)malloc(10 * sizeof (*val));
*ptr[0] = *val;
printf("%d\n", *ptr[0] );
return 0;
}
在使用 gdb 进行调试时,它说:
Program received signal SIGSEGV, Segmentation fault.
0x0804843f in main () at temp.c:10
*ptr = (int *)malloc(10 * sizeof (*val));
感谢您对此事的任何帮助。
【问题讨论】:
-
我基本上是想动态分配一个指针数组。
-
在你先给
ptr一个值之前,你不能做*ptr。这就是它出现段错误的原因。 -
*ptr = (int *)malloc(10 * sizeof (*val));只是分配 10*intsize。不知道你在做什么 -
@ams,你得到了 ant seg-fault???
-
@rjayavrp 当我阅读代码时,我脑子里有一个。这很痛。如果你没有得到一个,那么你只是幸运。
标签: c pointers segmentation-fault malloc