簡體   English   中英

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為你做這件事

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM