[英]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.