構造を定義すると...
struct LinkNode
{
int node_val;
struct LinkNode *next_node;
};
そして、それへのポインタを作成します...
struct LinkNode *mynode = malloc(sizeof(struct LinkNode));
...そして最後に free() それ...
free(mynode);
...構造体の「next_node」メンバーには引き続きアクセスできます。
mynode->next_node
私の質問は次のとおりです。基礎となるメカニズムのどの部分が、このメモリ ブロックが構造体 LinkNode を表すことになっているという事実を追跡しているのでしょうか? 私は C の初心者で、LinkNode へのポインターで free() を使用した後、その構造体のメンバーにアクセスできなくなると予想していました。ある種の「利用できなくなりました」という警告が表示されることを期待していました。
基礎となるプロセスがどのように機能するかについてもっと知りたいです。