[英]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為你做這件事
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.