在LINUX下运行错误:段错误,怎么改

来源:百度知道 编辑:UC知道 时间:2024/05/26 11:21:24
大家好,如题:程序如下:这是一段哈夫曼解码程序段,运行程序时一直提示段错误,不知道问题出在哪里了,该怎样改呢,多谢
void Decode(void) /* Decoding/Uncompressing */

{

int i, j, k, r, c;

unsigned long int count;

if (fread(&textsize, sizeof textsize, 1, infile) < 1)

Error("Unable to read"); /* read size of original text */

if (textsize == 0)

return;

StartHuff();

for (i = 0; i < N - F; i++)

text_buf[i] = ' ';

r = N - F;

for (count = 0; count < textsize; ) {

c = DecodeChar();

if (c < 256) {

putc(c, outfile);

text_buf[r++] = c;

r &= (N - 1);

count++;

} else {

i = (r - DecodePosition() - 1) & (N - 1);

j = c - 255 + THRESHOLD;

for (k = 0; k < j; k++) {

c = text_buf[(i + k) & (N - 1)];

putc(c, outfile);

是不是没有头文件包含 stdlib.h等等啊 linux下段错误分很多种啊 不过一般为头文件问题,或者标点符号问题。你按照他提示的行看看是这两种问题中的一种吗?

在linux下面的断错误很好调试啊,你可以打开gdb,然后用gdb来运行这个程序的可执行文件,发生段错误后用bt命令,就可以看到出段错误的地方了