【发布时间】:2011-09-10 01:40:18
【问题描述】:
首先我要说过去 5 年左右我一直在使用 Java 和 C# 进行编程,所以我的 C 技能非常生疏。
我遇到了分段错误,我不太清楚为什么。 使用 gdb,我能够找到导致故障的线路,但我不确定问题是什么。请帮忙:)
我从一个文件中读入一个整数值,它是秒数。假设我读了将值保存到 char token[100]...
time_type sim_time;
char *s;
unsigned long time_sim;
s = token;
time_sim = strtoul(s,0,10);
int_to_time(time_sim, &sim_time);
Add_Event(eventId, agentId, &sim_time);
time_type 是一个结构体,它有一堆字段。 这是 int_to_time 的声明:
void int_to_time(unsigned long, struct time_type*);
现在是 Add_Event 的声明:
void Add_Event(int, int, struct time_type*);
对 int_to_time 的调用正常,但对 Add_Event 的下一次调用给出了 sim_time 的分段错误。我究竟做错了什么?
提前致谢。我尽量不包含不必要的代码,但如果我没有包含足够的代码,请告诉我。
【问题讨论】:
-
如果
time_type是一个结构,那么time_sim = strtoul(s,0,10);怎么样? -
访问 time_type 字段时是否 Add_Event 段错误?
-
@Seth
time_sim和sim_time是不同的变量。 -
说真的。是谁在发布后的几分钟内不断对所有这些低质量的问题进行投票?这真的开始让我紧张了。
-
@Tomalak,问题实际上并没有那么简单,因为代码没有明显的错误。至少,我什么都看不见。要么我是个白痴,要么这里有一些更微妙的东西在起作用。 John A,Add_Event 的代码可能会有所帮助。
标签: c