これは単純な問題だと確信していますが、構造体の動的配列を実装するデータ構造を作成しようとしています。
各構造体はリンクリストを実装します。
したがって、各リストの先頭を指すポインターの配列が必要だと思います。何らかの理由で、メソッド変数を割り当てると、セグメンテーション違反が発生します。できれば、私が間違っていることについて少し説明したいと思います。ありがとう!
また、これらはすべてCacheというクラス内にあるため、定義されていないように見える変数がいくつかありますが、定義されていることを保証します。プログラムのセグメンテーション違反はindexes[i]->next=NULLです。そしてその下の同様の行。
typedef struct setNode {
char valid, dirty;
unsigned int tag;
setNode *next;
Cache *nextCache;
} set;
set **indexes;
arrayLength = cache_size / block_size;
indexes = new setNode *[arrayLength];
set *temp;
//Step through the array. The array is full of pointers to "Dummy Nodes"
for (size_t i = 0; i < arrayLength; i++) {
indexes[i]->next = NULL;
indexes[i]->valid = 0;
indexes[i]->dirty = 0;
indexes[i]->tag = 0;
//create empty linked list for each tag spot (One for direct mapped. etc...)
for(size_t i = 0; i < associativity; i++)
{
temp = indexes[i];
temp->next = new setNode;
temp = temp->next;
temp->next = NULL;
temp->valid = 0;
temp->dirty = 0;
temp->tag = 0;
}
}
}