簡體   English   中英

線程1:生成EXC_BAD_ACCESS(代碼= 1,地址= 0x0)問題

[英]Thread 1 : EXC_BAD_ACCESS (Code = 1, address = 0x0) issue is generated

我正在使用Apple LLVM編譯器在Xcode中進行C ++開發。 我初始化了char pickbuf變量,並分配了所需的內存,我想將值1分配給那里的第二行代碼。 但是我收到了空指針錯誤:請幫助我。

2DCDP4.h

  class CDP : public Const2DCDP{

    struct PICK
        {
            short x;            // Transverse connector
            short y;            // Vertical direction consolidated
            unsigned char x0;   // Transverse reduction limit
            unsigned char y0;   // Longitudinal reduction limit
        } ;

    public:

        char*   pickbuf =new char[1];   // Overlapping buffer allocate some 
        PICK*   pickup =new PICK [1];       // Backtrace buffer

    }
void getProjection(void);
    };

2DCDP4.cpp

#include "2DCDP4.h"

void CDP::getProjection(void){
char    *before=pickbuf;
if( before[(j-1)*di + (i-1)] == 1) //**Thread 1 : EXC_BAD_ACCESS (Code = 1, address = 0x0)**
{
//code 
}
}

您尚未為pickbuf分配任何內存,但嘗試在第二行的pickbuf上訪問該內存。 要解決此問題, pickbuf在第二行之前為pickbuf分配一些內存:

char pickbuf[n];

要么

char* pickbuf = new char[n];

其中n是足以滿足您需要的大小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM