AndroidNativeC++LibrarywithTFLite中AllocateTensors()函数的空指针解引用问题
创始人
2024-10-09 09:30:14
0

在AllocateTensors()函数中添加条件判断,以确保输入tensor指针不为空。示例代码如下所示:

void Interpreter::AllocateTensors() {
  TensorAllocator* allocator = GetAllocator(0);
  for (int i = 0; i < tensors_.size(); ++i) {
    TfLiteTensor* t = &tensors_[i];
    if (t->allocation_type != kNoAllocation) {
      if (t->data.raw == nullptr || !allocator) {
        // 若数据指针为空或分配器未定义,则给出错误提示信息。
        LOG(ERROR) << "AllocateTensors: nullptr tensor or allocator";
        return;
      }
      if (t->bytes == 0 || TfLiteIntArrayProduct(t->dims) == 0) {
        // 零尺寸的tensor视为空tensor,不进行内存分配。
        t->data.raw = nullptr;
        continue;
      }
      size_t alignment = 8;
      t->bytes = (t->bytes + alignment - 1) & ~(alignment - 1);
      if (!allocator->Allocate(t)) {
        // 内存分配失败,给出错误提示信息。
        LOG(ERROR) << "AllocateTensors: failed to allocate tensor";
        return;
      }
    }
  }
  in_flight_execution_plan_->UpdateInputOutputTensorPointers(tensors_);
}

这样,就会在输入tensor为NULL时避免空指针解引用的问题。

相关内容

热门资讯

九分钟辅助挂!奇迹脚本辅助(透... 九分钟辅助挂!奇迹脚本辅助(透视)同城游辅助工具(详细透视外开挂教程)1、快速入门:当你通过点击开始...
第8分钟辅助挂!蜀山四川小程序... 1、第8分钟辅助挂!蜀山四川小程序辅助插件(透视)永胜联盟金花辅助(详细透视外开挂教程);该软件可以...
一分钟辅助挂!哥哥打大a辅助(... 一分钟辅助挂!哥哥打大a辅助(透视)中至赣州黑科技辅助软件视频(详细透视外开挂教程)1、超多福利:超...
十分钟辅助挂!桂林老k字字牌辅... 十分钟辅助挂!桂林老k字字牌辅助(透视)手机字牌辅助脚本工具(详细透视外开挂教程)1、构建自己的微扑...
9分钟辅助挂!友友邳州辅助软件... 9分钟辅助挂!友友邳州辅助软件下载(透视)潮汕汇辅助神器(详细透视外开挂教程)是一款可以让一直输的玩...
五分钟辅助挂!凑一桌游戏辅助(... 1、五分钟辅助挂!凑一桌游戏辅助(透视)微友辅助神器下载(详细透视外开挂教程)。2、微友辅助神器下载...
第8分钟辅助挂!呗兔辅助器(透... 第8分钟辅助挂!呗兔辅助器(透视)小闲川南手游辅助器(详细透视外开挂教程)1)小闲川南手游辅助器辅助...
九分钟辅助挂!浙江宝宝游戏万能... 1、九分钟辅助挂!浙江宝宝游戏万能辅助器(透视)心悦踢坑神器软件下载(详细透视外开挂教程);代表性(...
第1分钟辅助挂!宜宾小闲辅助(... 第1分钟辅助挂!宜宾小闲辅助(透视)微友辅助器免费版v2.0(详细透视外开挂教程)1、每个玩家都可以...
八分钟辅助挂!微信开发辅助工具... 八分钟辅助挂!微信开发辅助工具(透视)山西扣点带你辅助工具破解(详细透视外开挂教程)是一款可以让一直...