Segfault:不知道从哪里开始

时间:2010-09-19 19:48:55

标签: c boot segmentation-fault

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

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

while(data < end) 

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

谢谢!

伊凡

1 个答案:

答案 0 :(得分:2)

错误是:

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 );
}