我有一个包含char指针的结构体和一个包含数据的char数组。我想有char数组内的数据复制到char指针。
我已经尝试过strcpy和strncy,但当我试图复制数据时,我得到了一个segfault。我不知道我做错了什么。
结构
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为你做