そこで、ADTへのポインタを返す関数をヒープ内に書き込もうとしています。
問題は、メモリ割り当て後に操作できないことです。これが簡略化されたコードです
typedef struct _entity {
int value;
} *Entity;
Entity *new_entity() {
Entity *ptr = (Entity*)malloc(sizeof(struct _entity));
assert( ptr );
(*ptr)->value = 5; // program crashes after this line
return ptr;
}
エラーは次のとおりです。
test.exeの0x013e1665で未処理の例外:0xC0000005:アクセス違反の書き込み場所0xcdcdce21。