野指针
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
//野指针错误
void swap(int *a, int *b)
{
//1.回忆操作系统内存分布
//2. int * tmp 定义了一个野指针
//3. int * tmp 没有给指针赋值,指针可能指向一个不确定的随机值
//4. 如果指针恰巧指向了一个0-4G中的受保护区域,程序就会挂掉
int * tmp;
//程序实际运行时时在 *tmp = *a 这里报错,指针指向0地址,0地址不可读写。
*tmp = *a;
*a = *b;
*b = *tmp;
}
int main(void)
{
int a, b;
a = 3;
b = 5;
printf(“a=%d\n b=%d\n”, a, b);
swap(&a, &b);
printf(“a=%d\nb=%d\n”, a, b);
system(“pause”);
}