Cでハッシュマップを作成しようとしています。以下はそのコードです。 Darrayの各要素(各ノードへのポインタ)に値を代入しようとすると、セグメンテーションフォルトが発生しています(つまり、23行目と24行目)。私が間違っているところを指摘するのに誰も助けてくれますか?構造内のノードの動的配列に値を代入する際のセグメンテーションエラー
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node* next;
}Node;
typedef struct Map{
struct Node** Darray;
} Map;
#define SIZE 10
int main()
{
int i=0;
Map* M = malloc(sizeof(Map));
M->Darray = (struct Node**)malloc(sizeof(Node*)*SIZE);
for (i =0;i < SIZE;i++){
M->Darray[i]->data =0;
M->Darray[i]->next =NULL;
}
}
Fyiでは、ここで 'Map'の動的割り当ては不要です。また、 'Map'のどこかに' Node'ポインタ配列の大きさがなければなりません。あるいは、ロードファクタが不可能になったときに展開、縮小、再ハッシュを見つけることになります。最後に、[Cプログラムでmalloc()とfriendsをキャストしない](https://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc)。 – WhozCraig
ありがとう! WhozCraig –