だから私はこの問題を抱えており、修正することはできません:-(私の.hにはこれがあります:
protected:
char* _textPath_1;
FileReader* _reader_3;
.cpp で私は:
_reader_3 = new FileReader();
_textPath_1 = "foo";
_reader_3->openFile(_textPath_1);
そしてFileReaderにはこれがあります:
private:
char* fileName;
public:
signed int openFile(char* name);
しかし、これを書くと(テストするだけです):
signed int FileReader::openFile(char* name) {
std::cout << name << std::endl;
fileName = name;
stream.open(fileName, std::ios::in);
if (!stream.is_open()) {
FileReader::printErrorOpeningFile(fileName);
stream.close();
return -1;
}
return 0;
}
fileName は char * であり、name と同じ値 (foo) を取得する必要があります。エラーが発生し、名前を印刷することさえできず、空白行が印刷されるだけです..なぜですか?
編集: strcpy を使用しても機能しません..実際には関数内で name の値を出力できません。「初期化解除」されているようです。