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时避免空指针解引用的问题。

相关内容

热门资讯

4分钟辅助!poker红龙辅助... 4分钟辅助!poker红龙辅助,手游游戏挂机辅助(重大推荐开挂辅助脚本);手游游戏挂机辅助是一项手游...
第6分钟辅助!九九山城插件程序... 第6分钟辅助!九九山城插件程序,神途免费辅助软件(研究成果开挂辅助安装);亲真的是有正版授权,小编(...
八分钟辅助!越乡游辅助工具,雀... 八分钟辅助!越乡游辅助工具,雀姬辅助脚本(今日公布开挂辅助安装);雀姬辅助脚本是一项雀姬辅助脚本软件...
第6分钟辅助!手机游戏辅助脚本... 第6分钟辅助!手机游戏辅助脚本工具,钱塘十三水其实真的有挂(玩家必看科普开挂辅助软件);1、让任何用...
第4分钟辅助!反杀大厅辅助,福... 第4分钟辅助!反杀大厅辅助,福建天天开心辅助工具(玩家必看开挂辅助插件);福建天天开心辅助工具软件透...
第八分钟辅助!中至赣州黑科技辅... 第八分钟辅助!中至赣州黑科技辅助软件,新道游房卡辅助器(透视攻略开挂辅助下载);是一款可以让一直输的...
第7分钟辅助!闲逸辅助插件,微... 第7分钟辅助!闲逸辅助插件,微信小程序加速脚本(玩家必备科普开挂辅助工具);亲,有的,ai轻松简单,...
第6分钟辅助!樱花之盛辅助软件... 第6分钟辅助!樱花之盛辅助软件,微乐小程序辅助(透视透视开挂辅助软件);小薇(透视辅助)致您一封信;...
第四分钟辅助!wpk透视辅助方... 第四分钟辅助!wpk透视辅助方法,微信新九游辅助(分享给玩家开挂辅助软件);1、让任何用户在无需AI...
七分钟辅助!皇豪互众控制系统,... 七分钟辅助!皇豪互众控制系统,天天互娱软件(玩家必备科普开挂辅助安装);是一款可以让一直输的玩家,快...