【发布时间】:2010-11-22 20:32:35
【问题描述】:
我将复制相关行:
(声明)
typedef struct { /* per una entrada de la taula de posicion */
int f;
int c;
} pos;
pos *p_opo[9];
(主要)
for (i = 0; i < num; i++) {
p_opo[i] = (pos *) calloc(n_fil * n_col / 2, sizeof (pos));
}
现在,在只引入了这一行之后,代码会在任意点中断(在对给定库函数的调用中)。我怀疑我用这个破坏了一些东西,虽然我不知道是什么。
我想要的只是一个可变大小数组的数组!
PD: num 是程序的一个参数。反正我一直在用 num=1 运行它。
【问题讨论】:
-
编辑了帖子。 num 是程序的参数。我现在使用 num = 1 执行此操作并收到错误。
-
如果 num
-
它中断了对库函数的调用,该函数在我修改它之前一直运行良好。更糟糕的是,该函数甚至不会与 p_opo 混淆!
-
如果 num 是“程序的参数”,你是从 argv 得到的吗?您是否使用 atoi 将 num 的字符表示从 argv 转换为 int?
-
是编译错误还是运行时错误,如果是,是什么错误?那种有用的信息……还有,发生错误时调用的函数/代码……你用过调试器吗?
标签: c arrays pointers segmentation-fault