簡體   English   中英

C總線錯誤:10 bootstrap.sh

[英]C Bus Error: 10 bootstrap.sh

因此,在運行此代碼時,我不斷收到錯誤消息:

“ /Applications/TextMate.app/Contents/SharedSupport/Bundles/C.tmbundle/Support/bin/bootstrap.sh:第7行:11441總線錯誤:10“ $ 3” .out“

我瀏覽了以前的文章,但無法弄清楚,有誰知道為什么會這樣。 我見過帖子說這是因為數組太大而無法存儲,但我無法想象2個20space int數組那么大。

#include <stdio.h>

int read_file(int *x, int *y);

int main()
{
    int count, x[25], y[25];
    count = read_file(x,y);
    return 0;
}

int read_file(int *x, int *y)
{
    int number, i;
    FILE *fp;
    fp = fopen("data.txt", "r");
    printf("File open");
    for(i = 0 ; fscanf(fp, "%d", &number) != 0; i++)
    {
            x[i] = number;
    }
    for(i = 0 ; fscanf(fp, "%d", &number) != 0; i++)
    {
        y[i] = number;
    }
        fclose(fp);
        return (i-1);
}

data.txt看起來像:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 0

如果輸入錯誤,fscanf可以返回EOF(-1?)-假設這不是您的問題。 是什么使x讀取所有數字停止? 看起來您的意思是在number == 0時停止循環。

放入print()(或在調試器中運行),然后查看“ for()”循環是否真的終止了您認為的位置:)

您絕對需要更改代碼以檢查:

  1. “ fopen()”錯誤

  2. “ fscanf()”中的錯誤

fscanf返回成功讀取的項目數,我想您要測試number == 0是否從循環中打破。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM