(C / C ++)エラー:スレッド1:EXC_BAD_ACCESS(code = 2、address = 0x ....)

XcodeバージョンV13.2.1

問題はタイトルと同じですが、最初にばかげて間違っている解決策を紹介します:(
手順はブログからのものです)



このメソッドの機能は次のとおりです。デバッグオフ、 言い換えるとこのメソッドはエラーを「修正」します

解決:

トピックに戻ると、EXC_BAD_ACCESSこの種のエラーはコード自体に問題がある可能性があります。これは通常、次の理由によります。システムは、解放されたメモリ領域にアクセスします、たとえば次のコードで:

  1. 構造(ノード)を定義しNodeます。各ノードオブジェクトは別のノードを指すことができるため、ノードチェーンを形成します
  2. InitNode()ノードにスペースを割り当てるための初期化関数を定義します
  3. 主な機能では、n1、n2を宣言しますが、n1のみを初期化します(n1にスペースを割り当てます)n2にスペースが割り当てられていないため、最後の行でEXC_BAD_ACCESSエラー
typedef struct{
    
    
    struct Node *next;
}Node, *NodeHead;

void InitNode(NodeHead *NH){
    
    
    *NH = (Node *)malloc(sizeof(Node));
    (*NH)->next = NULL;
}

void main(){
    
    
    Node *n1, *n2;
    InitNode(&n1);
    n1->next = n2;
    n2->next = n1;
}

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_43728138/article/details/123478855