簡體   English   中英

總線錯誤:C中數據生成中的10

[英]Bus error : 10 in data generation in C

這是我對Edge的定義。

typedef struct Edge{
    int first;
    int second;
}Edge;

在我的主要文章中,我試圖生成一組隨機邊緣並將其寫入數組。

int main(){

const int NUM_VERTICES = 1024;
const int NUM_EDGES = 1024;

Edge* edges[NUM_EDGES];

for (int i = 0; i < NUM_EDGES; ++i)   
    {
        edges[i]->first = (rand() % (NUM_VERTICES+1));
        edges[i]->second = (rand() % (NUM_VERTICES+1));
    }
    printf("Reached here");
    printf("Data Set: ");


    for (int i = 0; i < NUM_EDGES; ++i)
    {
        printf("%d -> %d", edges[i]->first, edges[i]->second);
        printf(((i % 4) != 3) ? "\t":"\n");
    }
return 0;
}

當我運行該程序時,

Bus error : 10

我在這里做錯了。

數組edges未初始化。 因此,您不能尊重它的元素。 這種不確定的行為 您似乎實際上並不需要指針數組。 因此,只需使用一個數組:

Edge* edges[NUM_EDGES];

Edge edges[NUM_EDGES];

並將->更改為. 操作符在代碼中的任何地方。

暫無
暫無

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

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