读取位置时发生访问冲突
发布时间: 2025-09-30 16:05:45
1. c++错误0x... 处(位于... .exe 中)引发的异常: 0xC0000005: 读取位置 0x...时发生访问冲突
例:
int a[3] = { 1, 2, 3 };
int *p = a;
则p、p+1、p+2分别指向数组a的3个元素。不需要自己推算实际占用大小,这是编译器的事情
ifstream inFile;
ofstream outFile;
outFile.open("c:\b.txt",ios::out);
char univ[] = "Tsinghua",name[10];
int course = 111,number;
outFile<<univ<<endl;
outFile<<course<<endl;
inFile.open("c:\b.txt",ios::in/*|ios::nocreate*/);
if(!inFile){
cout<<"不能打开b.txt"<<endl;
char c;
inFile>>name>>c>>number;
outFile<<"name:"<<name<<endl;
outFile<<"number:"<<number<<endl;
右值引用与转移语义
在旧标准C++语言中,临时量(术语为右值,因其出现在赋值表达式的右边)可以做参数传给函数,但只能被接受为const &类型。这样函数便无法区分传给const &的是真正的右值还是普通const变量。而且,由于类型为const &,函数也无法改变所传对象的值。
C++0x将增加一种名为右值引用的新的引用类型,记作typename &&。这种类型可以被接受为非const值,从而允许改变其值。这种改变将允许某些对象创建转移语义。
以上内容参考:网络-c++0x
热点内容