[英]segmentation fault (dumped core)
我嘗試運行以下程序,但收到錯誤消息
“分段錯誤(轉儲核心)”
我的代碼:
#include <stdio.h>
#include <stdlib.h>
#include "serialsource.h"
int main()
{
FILE *pfile;
char *filename="/home/menen/DataFiles/t2.txt";
pfile=fopen(filename, "r");
if (pfile == NULL)
{
printf("Can not open the file /home/menen/DataFiles/t2.txt");
exit(1);
}
int i;
char ch;
char val[4];
for(i=0 ;i<10;i++)
{
int count=0, j=3;
ch=getc(pfile);
while (ch != '\n')
{
count++;
if (count>=62)
{
val[j]=ch;
printf("%c ", val[j]);
j--;
}
ch=getc(pfile);
}
putchar('\n');
}
fclose(pfile);
exit(0);
}
有人可以幫我在我的代碼中找到問題嗎?
if (count>=62)
{
val[j]=ch;
printf("%c ", val[j]);
j--;
}
是不是很有可能你會去val[-1]
及以下,看起來這就是你有分段錯誤的原因。
if(j>=0)
{
val[j] = ch;
j--;
}
通過檢查如上所示,確保您沒有數組越界訪問。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.