繁体   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