はい、私はこの種の問題を抱えています。なぜなら、私は常にポインター操作に従うのが難しいからです。だから、私はこの単純なコードを持っています:
struct myfile {
char* name;
char* content;
long size;
};
myfile this_file;
int main() {
read();
return 0;
}
void read() {
output("Please, specify file name: ");
cin >> (this_file.name = new char);
FILE *stream;
stream = fopen(code.name, "r");
if (stream != NULL) {
fseek(stream , 0, SEEK_END);
myfile.size = ftell(codefile);
myfile.content = new char[myfile.size];
fseek(myfile, 0, SEEK_SET);
if ((fread(myfile.content, 1, myfile.size, stream)) == 0) {
fclose(codefile);
cout << "File is empty!\n");
}
}
}
ファイルの名前を正しく取得し、コンテンツのサイズを取得しますが、content
メンバーにスペースを割り当てようとすると、プログラムがクラッシュします。これは、いくつかのポインタの問題であることがわかっていますが、いつものように、何を覚えているかわかりません。それは...ですか。この行に到達するとクラッシュします。myfile.content = new char[myfile.size];
また助けが必要です。ありがとう!