c ++ char数组到struct中的char指针
c++ char array to char pointer in struct
我有一个包含 char 指针的结构和一个包含数据的 char 数组。我想将 char 数组中的数据复制到 char 指针。
我已经尝试过 strcpy 和 strncpy,但是在尝试复制数据时我在两者上都遇到了段错误。我不知道我做错了什么。
结构
struct Message
{
Header hdr;
char *dataArr;
Footer ftr;
};
主要
int main(){
// create message struct
Message send1;
// create stream
std::ostringstream outStream;
//
// STREAM GETS DATA HERE
//
std::string temp = outStream.str();
char arr[temp.size()];
strcpy(arr, temp.c_str());
int sz = sizeof(arr)/sizeof(char);
// print arr size and contents
std::cout << "arr size: " << sz << "\n";
for(int i=0; i<sz; i++){
std::cout << arr[i];
}
// copy char array into structs char pointer
//strncpy(send1.dataArr, arr, sz);
strcpy(send1.dataArr, arr); <-- Segmentation fault here
return 0;
}
您首先需要分配内存来复制您的数据。
或使用 strdup 为您完成
我有一个包含 char 指针的结构和一个包含数据的 char 数组。我想将 char 数组中的数据复制到 char 指针。
我已经尝试过 strcpy 和 strncpy,但是在尝试复制数据时我在两者上都遇到了段错误。我不知道我做错了什么。
结构
struct Message
{
Header hdr;
char *dataArr;
Footer ftr;
};
主要
int main(){
// create message struct
Message send1;
// create stream
std::ostringstream outStream;
//
// STREAM GETS DATA HERE
//
std::string temp = outStream.str();
char arr[temp.size()];
strcpy(arr, temp.c_str());
int sz = sizeof(arr)/sizeof(char);
// print arr size and contents
std::cout << "arr size: " << sz << "\n";
for(int i=0; i<sz; i++){
std::cout << arr[i];
}
// copy char array into structs char pointer
//strncpy(send1.dataArr, arr, sz);
strcpy(send1.dataArr, arr); <-- Segmentation fault here
return 0;
}
您首先需要分配内存来复制您的数据。
或使用 strdup 为您完成