指针锱铢---指针的声明赋值,野指针的灾难性后果

#include <stdio.h>
int main()
{
   int a = 10;
  int *p;
  p = &a;
  printf("这就是指针p指向的地址里存的值%d ,说起来容易,用起来准糊涂\r\n", *p);
  //改了指针指向的地址的内容
  *p = 8888;
  printf("这样一来,a的值就变成了%d\r\n",a);
  //int *wenwa=NULL;//野指针,通常不允许给野指针赋值,万一指向的是操作系统核心模块地址,放开肆意修改将导致严重后果
  //*wenwa = 6666;
  //printf("来试试我的野指针%d",*wenwa);
  getchar();
  return 8;
}


#无类型指针C语言中可以将任何类型的指针赋值给void类型指针使用时需要指定空类型指针要强转的类型

原文地址:https://www.cnblogs.com/saintdingspage/p/10312230.html

时间: 2024-10-14 07:19:26

指针锱铢---指针的声明赋值,野指针的灾难性后果的相关文章

关于空指针NULL、野指针、通用指针

http://www.cnblogs.com/losesea/archive/2012/11/16/2772590.html 首先说一下什么是指针,只要明白了指针的含义,你就明白null的含义了.假设 有语句 int a=10;那么编译器就在内存中开辟1个整型单元存放变量a,我们假设这个整型单元在内存中的地址是 0x1000:那么内存0x1000单元中存放了数据10,每次我们访问a的时候,实际上都是访问的0x1000单元中的10.现在定义:int *p:                 p=&a

野指针问题

1. 定义: 野指针是指向一个已删除的对象或未申请访问受限内存区域的指针.与空指针不同,野指针无法通过简单地判断是否为NULL来避免,而只能通过养成良好的编程习惯来尽力减少,对野指针进行操作容易造成程序错误. 2. 形成原因: (1)指针变量未初始化 任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气.所以指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存. (2)指针释放之后未置空 有时指针在free或delete后未赋值 NULL

野指针相关总结

小程序如下: 1 void Test(void) 2 { 3 char *str = (char *) malloc(100); 4 strcpy(str, "hello"); 5 free(str); 6 if(str != NULL) 7 { 8 strcpy(str, "world"); 9 printf(str); 10 } 11 } 请问运行Test函数会有什么样的结果?答:篡改动态内存区的内容,后果难以预料,非常危险.因为free(str);之后,str

C++ -&gt; 在使用动态链表和异质链表产生野指针的步骤

使用异质链表产生野指针的情况,下面是修改书本的例子: -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

C语言指针2(空指针,野指针)

//最近,有朋友开玩笑问 int *p  *是指针还是p是指针还是*p是指针,当然了,知道的都知道p是指针 //野指针----->>>指没有指向一个地址的指针(指针指向地址请参考上一篇文章) //空指针---->>指向空(null)的指针就是空指针 //指针的其他用法,指针可以指向指针,指针可以进行+ - * /运算 /* 特别注意,各个编译器都不相同,这里有一种错误写法,如: int *p,int a=10,b=20; p=&b; *p = &a;    

野指针 悬空指针和悬空引用

空悬指针是这样一种指针:指针正常初始化,曾指向过一个正常的对象,但是对象销毁了,该指针未置空,就成了悬空指针. 野指针是这样一种指针:未初始化的指针,其指针内容为一个垃圾数. (一般我们定义一个指针时会初始化为NULL或者直接指向所要指向的变量地址,但是如果我们没有指向NULL或者变量地址就对指针进行使用,则指针指向的内存地址是随机的).存在野指针是一个严重的错误. int main() { int *p; // 指针未初始化,此时 p 为野指针 int *pi = nullptr; { int

c++中的悬浮指针和野指针 二级指针

(1) c++中的悬浮指针:声明了但没有被付值的指针,它指向内存中的任意一个空间.避免悬浮指针的一个方法是开始就付值为NULL (2)"野指针"不是NULL指针,是指向"垃圾"内存的指针.人们一般不会错用NULL指针,因为用if语句很容易判断.但是"野指针"是很危险的,if语句对它不起作用.野指针的成因主要有两种: 一.指针变量没有被初始化.任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气.所以,指针变量在创建的同

七.OC基础加强--1.内存管理 2.野指针,内存泄露 3.set方法的内存管理 [email&#160;protected]参数 [email&#160;protected]和循环retain的使用 6.NSString的内存管理

1,内存管理简单介绍 1,为什么要有内存管理? malloc selloc dealloc```需要回头复习 一般的内存 4s 是512m内存:6 是1024m内存: 当内存过大时,会耗尽内存.出现程序闪退. 2.OC内存管理的范围 : 管理任何继承NSObject的对象,对其他的基本数据类型无效. 3.对象类型是程序运行过程中动态分配的,存储在堆区:内存管理主要是对 堆区中的对象的内存管理. 4.OC内存管理的原理 为了防止内存泄露 对象的引用计数器 : 每个OC对象都有自己的引用计数器,是一

预防野指针的几种方法

野指针,又称迷途指针,即指向"垃圾"内存的指针.此时指针指向的内存已被操作系统回收,程序已无法再访问. 野指针,不是NULL指针,而是看上去指向合法内存,却在实际上该内存已经释放. 下面是,预防野指针的几种方法. 1)声明指针时,记得初始化,例如: char* p=NULL; 2)当指针没有使用价值时,记得释放,释放成功后记得为该指针赋值NULL.例如: if(NULL != P) { delete p; p = NULL; } 3)如果指针作为函数的输入参数时,在引用参数前首先对指针