嗨,大家好我正在編寫一個程序,讀取大學任務的NMEA語句,並且遇到了分段錯誤問題。有誰能幫我修好嗎?使用strcpy時在構造函數中出現分段錯誤
NmeaSentence::NmeaSentence(std::string sentence) {
const char *temp = sentence.c_str();
char *c_sent;
strcpy(c_sent, temp);
char *pch;
for(int i = 0; i < MAX_SENTENCE_PARTS; i++){
pch = strtok(c_sent, ",");
this->sentenceParts[i] = pch;
}
this->sentence = sentence;
this->sentenceType = sentenceParts[0];
}
該錯誤似乎發生在strcpy。我究竟做錯了什麼?
可能重複[strcpy with malloc?](http://stackoverflow.com/questions/5354933/strcpy-with-malloc) –
在附註中,爲什麼不在每個地方都使用'std :: string'?是否有特定的需求迫使你通過'(const)char *'來操作字符串? – JBL
您正在使用'strtok'。這是錯誤的。考慮使用Boost.Tokenizer,或從Boost.StringAlgo中分離出來。 –