Android之invalid address or address of corrupt block 0xabb494a0 passed to dlfree崩溃解决办法

1、问题

手机崩溃

 

 invalid address or address of corrupt block 0xabb494a0 passed to dlfree
Fatal signal 11 (SIGSEGV), code 1, fault addr 0xdeadbaad in tid 29629 (AsyncTask #1)
#00 pc 000308a6  /system/lib/libc.so (dlfree+1285)





2、原因

const char* 转char *的用的这种方法

const char* cpc = "abc";

char* pc = new char[strlen(cpc + 1)];//足够长

strcpy(pc,cpc);

导致开辟内存大小不够,导致崩溃。




3、解决办法

 

const char* cpc = "abc";

char* pc = new char[strlen(cpc) + 1];//足够长

strcpy(pc,cpc);
以后要注意,出现什么invalid address or address of
一般就是内存地址搞错了,一般要留意strlen方法。

你可能感兴趣的:(Andriod,积累)