【发布时间】:2013-01-24 12:55:01
【问题描述】:
我需要保存一些数据,唯一可行的选择是std::string;所以我得到一个作为void* 传递的布尔数组。现在我需要以一种可以将其转换为std::string 并能够从该确切字符串中读取void* 到bool[] 的方式保存它。可悲的是,我迷失在转换中。
f(const void* data, int length){
bool** boolPointer = (bool**)(data);
bool boolArray[length];
for (int i=0; i<=length; i++){
boolArray[i] = p[sizeof(bool)*i];
}
std::string s = (std::string&)boolArray;
}
我很确定最后一行没有可行的转换,但那是我的尝试。
【问题讨论】:
-
为什么需要将其转换为 std::string? std::string 应该有什么样的格式?不能简单地将某些东西转换为字符串。
-
你应该使用
for (int i=0; i<length; i++)<而不是<= -
@Ashot 如果有的话,他应该做
std::copy(boolPointer, boolPointer+length, &boolArray[0])。但我根本不明白为什么需要这样做。 -
@R.遗憾的是,Martinho Fernandes 在项目中已经很晚了,std::string 是数据保存机制的接口。
-
重要的部分是字符串应该具有的格式。您不只是“转换为字符串”。你“建立一个特定格式的字符串”。
标签: c++ type-conversion void-pointers