被这个问题坑过两次,第一次没有记录下来,第二次果断又被坑,赶紧记录下,例如下面的结构体

struct tagUserItem {
    int iUserID;
    std::string strUserName;
}
tagUserItem userItem;

使用 memset(&userItem,0,sizeof(userItem)); 方式将内存为NULL,在IOS和WINDWOS下对strUserName进行赋值都没问题,但是一到NDK编译的安卓系统中运行就报错。在NDK中这种初始化方式会导致 strUserName 指针异常!!! IOS和windows暂时都没问题, 以防再次被坑,赶紧记录下来。!!!

2018年07月17日记录新坑
虽然 IOS和windows暂时都没问题不会报错,但是memset后指针类型的元素 会变成野指针,内存不会被释放,会导致内存溢出。谨记。

打赏
谨记结构体中包含指针变量时候的内存初始化
Tagged on:

发表评论