のボイドを含む構造体を解放は*
static void freeNode(node_t *node) { free((void*)node); }
はなぜノードがvoid *
にキャストされましたか? ちょうどfree(node)
でしたか?
そして、以来、私は別の構造に取り組んでいます:
typedef struct TaskNode {
void (* fun)(void *);
void * arg;
struct Task * next;
} task_t;
は、私はそれを解放する前に、あまりにもvoid *
にmallocさ構造体へのポインタをキャストする必要がありますか?
あなたがC89にいて、 'stdlib.h'を含んでいなかった場合。 'free((void *)node);'は正しく、 'free(node);は正しくありません。しかし、その時代は私たちの後ろにあります –