指针疑惑

本文通过多个示例介绍了如何正确地在C++中使用指针进行文件读取操作,强调了分配内存的重要性,并区分了正确与错误的做法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

举例1:对

int *p = new int (512);
CFile file(L"\**.*",CFile::modeRead);
file.Seek(512, CFile::begin);
file.Read(p, sizeof(testStruct1));


上面这种用法是对的,要读入数据给指针p,p必须要new出空间


举例2:错

int *p = NULL;//崩溃
CFile file(L"\**.*",CFile::modeRead);
file.Seek(512, CFile::begin);
file.Read(p, sizeof(testStruct1));

这种用法就不对,指针没指向任何位置,读出的数据没处存放


举例3:错

int *p ;   //这种提示该指针没有初始化
CFile file(L"\**.*",CFile::modeRead);
file.Seek(512, CFile::begin);
file.Read(p, sizeof(testStruct1));

总结:注意上述两种区别




举例4:对的方式

CFile file(L"\**.*",CFile::modeRead);
testStruct1 *test = new testStruct1;
file.Seek(512, CFile::begin);
file.Read(test, sizeof(testStruct1));


举例5:错误的方式

CFile file(L"\**.*",CFile::modeRead);
testStruct1 *test = NULL;
file.Seek(512, CFile::begin);
file.Read(test, sizeof(testStruct1));


举例6:错误的方式

CFile file(L"\Signal.time",CFile::modeRead);
testStruct1 *test;
file.Seek(512, CFile::begin);
file.Read(test, sizeof(testStruct1));


总结:注意举例3,4,5的区别


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值