文件处理I/O C 错误

file handling I/O c++ error

本文关键字:错误 处理 文件      更新时间:2023-10-16

这是我要运行的代码。编译器显示了一些警告,该警告说,可以使用变量" P"。 在运行它的..我会显示的..贝洛。 请纠正我并解释。 谢谢。 执行代码 * 代码 这个错误是..要输出的字符数组的前两个元素有些混乱!!!*

#include<bits/stdc++.h>
using namespace std;
class file{
public:int a;
char* name;
public:
file(int x,char* b):a(x){name=b;}
void printfile(){cout<<a<<" "<<name<<endl;}
};
int main(){
char *p;
int x=10;
cout<<"enter a name"<<endl;
cin>>p;
file k(x,p);
ofstream f("file",ios::out|ios::binary);
f.write((char*)&k,sizeof(class file));
f.close();
ifstream of("file",ios::in|ios::binary);
file o(0,'');
of.read((char*)&o,sizeof(class file));
o.printfile();
of.close();
return 1;
}

您的p作为指针。谁将分配指针指向的内存?
在C中,呼叫者几乎总是有责任分配通话之前的任何缓冲区。
如果您不想,请改用std :: string。

首先,我建议您阅读有关C 指针和内存处理的一些基本手册,以便您更好地了解问题的来源。

您的代码中有两个主要问题。首先是您正在创建一个未连接到任何分配的内存的指针。简单地说,您要求访问内存地址而不要求系统为您保留它。

此外,在该内存位置中,可以存储任何位配置。变量的初始化是给出大量内存的任务,这些数据具有有意义的解释。我什至不确定在这种特殊情况下,Char*的流入运营商应该做什么。他可能是在最后一个或终点的最后一个之后附加您的角色。