首页 > 试题广场 >

下面关于"指针"的描述不正确的是()

[单选题]
下面关于"指针"的描述不正确的是()
  • 当使用free释放掉一个指针内容后,指针变量的值被置为NULL
  • 32位系统下任何类型指针的长度都是4个字节
  • 指针的数据类型声明的是指针实际指向内容的数据类型
  • 野指针是指向未分配或者已经释放的内存地址
当free释放内存之后,指针还指向原来的那块地址,需要我们设置 p = NULL;如果不手动设置 p = NULL,此时P就变成了野指针
发表于 2015-09-19 11:22:12 回复(3)
  1. free 掉一个指针后,指针仍然指向原来的地址。free 的意义在于告诉系统目标地址可以被回收。
  2. 32 位系统中MAR(内存地址寄存器)32位,可寻址范围为232次方Byte,共大约不足4G的内存空间。指针中保存内存地址,所以大小和MAR大小相同。
  3. 指针的类型用于确定指针所指的对象的类型,因此初始化或赋值时必须保证类型匹配。指针用于间接访问对象,并给予指针的类型提供可执行的操作,例如,int型指针只能把其指向的对象当作int型数据来处理,如果该指针指向了其他类型(double类型)的对象,则在指针上执行的任何操作都有可能出错。
  4. 一个有效的指针必然是以下三种状态之一:
    1. 保存一个特定的对象的地址;
    2. 指向某个对象后面的另一对象;
    3. 或者是0值。
发表于 2016-03-10 23:25:17 回复(1)
NII头像 NII
当free释放内存之后,指针还指向原来的那块地址,需要我们设置 p = NULL
发表于 2015-09-19 10:48:31 回复(0)
free 掉一个指针后,指针仍然指向原来的地址。free 的意义在于告诉系统目标地址被回收,系统可以把此内存给其他变量使用。但是原来指针仍然是指向此内存。如果用此指针操作内存是非法的,俗称野指针。为了数据安全,一般free 掉一个指针后,还要将此指针置为NULL;
发表于 2018-08-08 15:47:22 回复(1)
A:free释放掉指针内容后,需要手动将指针变量置为NULL,否则指针变量为野指针。
B:32操作系统下,指针大小均为4字节。指针必须要能访问操作系统的所有位置,所以32位操作系统下,1字节=8位,32位/8位=4字节。所以32位操作系统下,指针变量的大小为4字节,64位操作系统,指针变量的大小为8字节。
C:指针指向的数据类型,指向int   对应指针类型为 int *  指向char 对应指针类型 为char*
D:野指针:1:指针变量未初始化。2 释放的指针变量未手动置空。3,非法访问内存。
野指针:指针的指向不确定,没有确定的指向,或者指向 一个错误的地址。
发表于 2023-10-19 20:31:46 回复(0)
不正确,不正确。。。。。。。。。
发表于 2021-10-06 18:58:49 回复(0)

free一个指针,只是将指针指向的内存空间释放掉了,并没有将指针置为NULL,指针仍指向被释放掉的内存的地址,在判断指针是否为NULL的时候,通常是通过if(pt == NULL) ,这时,导致指针成为了野指针

并且野指针和空指针不同,野指针有地址,或者说是指向内存,对野指针进行操作,会造成内存错误,并且野指针无法从if语句进行判断其是否为NULL,所以在指针释放之后要将指针置为NULL。

发表于 2020-10-08 14:32:19 回复(0)
free 掉一个指针后,指针仍然指向原来的地址。free 的意义在于告诉系统目标地址可以被回收。 32位系统中MAR(内存地址寄存器)为32位,可寻址范围为2的32次方Byte,共大约不足4G的内存空间。指针中保存内存地址,所以大小和MAR大小相同。 指针的类型用于确定指针所指的对象的类型,因此初始化或赋值时必须保证类型匹配。指针用于间接访问对象,并给予指针的类型提供可执行的操作,例如,int型指针只能把其指向的对象当作int型数据来处理,如果该指针指向了其他类型(如double类型)的对象,则在指针上执行的任何操作都有可能出错。 一个有效的指针必然是以下三种状态之一: 保存一个特定的对象的地址; 指向某个对象后面的另一对象; 或者是0值。
发表于 2021-11-22 10:34:43 回复(0)
free释放内存空间后,指针还是指在那个位置,只是里面的值已经不确定了。要我们人工手动将指针置为NULL,否则将出现野指针。
发表于 2016-05-21 16:10:32 回复(0)
A   指针被删除以后不会直接赋空值
发表于 2015-09-19 12:05:46 回复(0)
不手动置为 NULL,会变成悬空指针,不是变成野指针
发表于 2023-07-02 18:13:29 回复(0)
free(*ptr)的本质是修改了被指向空间的权限。
发表于 2023-02-27 12:35:01 回复(0)
  1. free 掉一个指针后,指针仍然指向原来的地址。free 的意义在于告诉系统目标地址可以被回收。
  2. 32 位系统中MAR(内存地址寄存器)32位,可寻址范围为232次方Byte,共大约不足4G的内存空间。指针中保存内存地址,所以大小和MAR大小相同。
  3. 指针的类型用于确定指针所指的对象的类型,因此初始化或赋值时必须保证类型匹配。指针用于间接访问对象,并给予指针的类型提供可执行的操作,例如,int型指针只能把其指向的对象当作int型数据来处理,如果该指针指向了其他类型(double类型)的对象,则在指针上执行的任何操作都有可能出错。
  4. 一个有效的指针必然是以下三种状态之一:
    1. 保存一个特定的对象的地址;
    2. 指向某个对象后面的另一对象;
    3. 或者是0值。
发表于 2022-05-08 15:12:23 回复(0)
free掉一个指针后,指针仍然指向原来的地址,free的意义在于告诉系统目标地址可以被回收。
需要手动设置p=NULL  如果不手动设置p=NULL  此时P就变成了野指针。
发表于 2021-06-26 21:05:20 回复(0)
C选项啥意思呢
发表于 2021-04-29 06:37:52 回复(0)
free 和野指针的概念
发表于 2019-06-12 00:52:08 回复(0)

释放之后要p=NULL

发表于 2019-03-16 21:02:54 回复(0)
一般free掉还要p=NULL,否则,p变成野指针
发表于 2017-09-22 09:14:03 回复(0)
A 使用free释放内存后,是手动将p设置为NULL ,不是
指针变量的值被置为NULL
发表于 2017-09-17 10:27:30 回复(0)
free  掉一个指针后,指针仍然指向原来的地址。 free   的意义在于告诉系统目标地址可以被回收。
发表于 2017-03-03 11:41:06 回复(0)