我有一個包含 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;
}
uj5u.com熱心網友回復:
您首先需要分配記憶體來復制資料。
或者使用strdup為你做這件事
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/341802.html
上一篇:C 轉發不是右值參考的可變引數值
