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; 
}
HarmonyOS
2024-05-10 22:45:42
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
友人FA

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

分享
微博
QQ
微信
回复
2024-05-11 11:35:15
相关问题
ArkTs怎么传递对象或者类给Native
2360浏览 • 1回复 待解决
ArkTS语言内存管理,会自己管理
2124浏览 • 1回复 待解决
Native侧释放ArkTS对象的方法
484浏览 • 1回复 待解决
如何实现应用组件的信息传递
314浏览 • 1回复 待解决
Native侧调用ArkTS的全局普通方法
917浏览 • 1回复 待解决
low memory发生如何监听
1983浏览 • 1回复 待解决
ArkTS如何把string转为byte数组
3027浏览 • 1回复 待解决