string在ArkTs<==>Native间传递时,会发生内存copy吗?

string在ArkTs<==>Native间传递时,如下面代码中的注释1、2处会发生内存copy吗?

static napi_value GetString(napi_env env, napi_callback_info info) { 
  size_t argc = 2; 
  napi_value args[2] = {nullptr}; 
  napi_get_cb_info(env, info, &argc, args, nullptr, nullptr); 
 
  // 1.获取字符串 
  size_t name_buf_size = 0; 
  size_t name_result; 
  napi_get_value_string_utf8(env, args[0], nullptr, 0, &name_buf_size); 
  char name[name_buf_size + 1]; 
  napi_get_value_string_utf8(env, args[0], name, name_buf_size + 1, &name_result); 
 
  std::string value = "abc"; 
  napi_value result; 
  napi_create_string_utf8(env, value.data(), value.length(), &result); 
 
  // 2.返回字符串 
  return result; 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
HarmonyOS
2024-05-10 22:45:42
1313浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
友人FA

代码中的注释1、2处都会发生内存copy。

分享
微博
QQ
微信
回复
2024-05-11 11:35:15
相关问题
ArkTs怎么传递对象或者类给Native
3517浏览 • 1回复 待解决
HarmonyOS native C++ 层传递buffer 到ArkTS
1151浏览 • 1回复 待解决
HarmonyOS Native内存暴涨
935浏览 • 1回复 待解决
ArkTS语言内存管理,会自己管理
3126浏览 • 1回复 待解决
Native侧释放ArkTS对象的方法
1360浏览 • 1回复 待解决
页面传递参数总是闪退
309浏览 • 0回复 待解决
low memory发生如何监听
2731浏览 • 1回复 待解决
Native侧调用ArkTS的全局普通方法
1902浏览 • 1回复 待解决
如何实现应用组件的信息传递
1250浏览 • 1回复 待解决