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 为您完成