没有初始化就急切的赋值:
#include<iostream>
#include<Windows.h>
using namespace std;
int main(void) {
int a=0;
int *p;
*p = a;
system("pause");
return 0;
}
debug之后,编译器提示:
Run-Time Check Failure #3 - The variable 'p' is being used without being initialized.
变量p没有初始化,这时再点继续,编译器提示:
练习.exe 中的 0x00472b68 处有未经处理的异常: 0xC0000005: 写入位置 0xcccccccc 时发生访问冲突
这是写入发生冲突!强行中断!!!
所以一定要先初始化指针变量,然后再进行写入,正确操作为:
#include<iostream>
#include<Windows.h>
using namespace std;
int main(void) {
int a=0;
int b=4;
int *p = NULL;//初始化为空指针,这是操作系统预留的地址,不能对其进行操作
p = &a;
*p = b;
system("pause");
return 0;
}