欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

指针常见错误

程序员文章站 2022-05-03 15:54:11
...

1 引用未初始化的指针错误

如果指针变量未初始化,那么编译器会让他指向一个固定的,不用的地址。

#include<stdio.h>
int main(void)
{
	int *p, *q;
	printf("p = %#x\n", p);
	printf("q = %#x\n", q);
	return 0;
}

2 往一个存放NULL地址的指针变量里面写入数据

#include<stdio.h>
int main(void)
{
	int i = 3;
	int *j = NULL;
	*j = i;
	return 0;
}

现在将指针初始化为指向NULL。NULL也是一个指针变量。NULL指向的是内存中地址为 0 的内存空间。以32位系统为例,内存单元地址的范围是0x0000 0000 ~ 0xffff ffff。 其中0x00000000就是NULL所指向的内存单元的地址。但是在操作系统中,该内存单元是不可用的,凡是试图往该内存单元中写入数据的操作都会被视为非法操作,从而导致程序错误。同样,这种错误在编译的时候也不会报错,只有在执行的时候才会出错。这种错误也属于“段错误”。

相关标签: 指针常见错误