【问题标题】:Segfault: don't know where to start [closed]段错误:不知道从哪里开始[关闭]
【发布时间】:2010-09-19 19:48:54
【问题描述】:

我正在尝试在 Windows 下编译 this program (这是一个将可启动代码转换为软盘的程序。我从这里获得了源代码:http://www.acm.uiuc.edu/sigops/roll_your_own/1.bootstrap.html)。

首先我遇到的问题是它没有读取 INI 文件。现在解决了。现在我得到以下规则的段错误:

while(data < end) 

我向应用程序添加了输出,因此应该清楚执行停止的位置:没有“。”被打印出来。我在 Win64 上,使用 Cygwin 工具链。

谢谢!

伊万

【问题讨论】:

标签: c boot segmentation-fault


【解决方案1】:

一个错误是:

size = (int *)lSize;

更好:

*size = lSize;

函数如下:

void *loadfile(char *file, long *size)
...

在调用上下文中,例如:

long size=0;
char *buffer = loadfile("blah.txt",&size);
if( buffer )
{
  printf("\nstrlen = %lu, fsize = &ld", strlen(buffer), size );
}

【讨论】: