`

判断pointer是否初始化

    博客分类:
  • C++
 
阅读更多

 把pointer定义未NULL用来以后判断是否初始化

 

#include <stdio.h>
#include <stdlib.h>

// Some struct
typedef struct{
void *ptr;
int x;
int *y;
}Display;

void CloseDisplay(Display **dpy)
{
*dpy=NULL; // Compiler does not allow that
dpy = NULL; // Correct !
}

/.../
if ( dpy == NULL)

 注意代码中

*dpy=NULL; 

是错误的,因为*dpy代表的是数据,而不是指针。所以不能用它给指针赋值。

分享到:
评论

相关推荐

    PCIE 初始化配置流程

    PCI Express (PCIE) 初始化配置流程是整个计算机硬件和系统设计中至关重要的一步。它涉及一系列精心定义的步骤,确保不同硬件组件之间的正确通信和功能实现。以下是从给定文件中提取的详细知识点: 1. 写寄存器和读...

    Null Pointer Error(解决方案).md

    在Java中,可以通过条件判断语句来检查对象是否为null。当对象为null时,可以输出错误信息提示用户该对象尚未初始化,避免进一步的空指针错误。这种做法虽然简单,但非常有效。 除了基本的null检查之外,Java 8引入...

    c++ vector用法精讲(很精辟

    在本文中,我们将深入探讨`std::vector`的用法,包括其定义、初始化、值初始化以及各种操作。 首先,`std::vector`是一个模板类,它的实例可以存储任意类型的元素。例如,`vector&lt;int&gt;`表示一个存储整数的`std::...

    最全Vector用法总结.pdf

    4. `empty()`:判断容器是否为空。 5. `operator[](n)`:返回下标为n的元素。 6. `insert(pointer, number, content)`:在pointer指向的位置插入number个content。 7. `pop_back()`:删除容器末尾的元素。 8. `erase...

    C++ vector

    1. 如果没有指定元素初始化式,标准库自行提供一个初始化值进行值初始化。 2. 如果保存的式含有构造函数的类类型的元素,标准库使用该类型的构造函数初始化。 3. 如果保存的式没有构造函数的类类型的元素,标准库...

    common error analysis memory leakage & invalid pointer

    这样可以确保在后续的逻辑判断中不会因为未初始化而导致意外的结果。 ### 当使用指针时,检查是否有效! 在使用指针之前,必须先确认它是否已经被正确地初始化并且指向有效的内存地址。可以通过以下方式来实现: ...

    Null Pointer Error(处理方案).md

    具体来说,开发者应当确保在使用任何对象之前,该对象已经被正确初始化,即它指向了一个有效的内存地址。代码中需要加入适当的条件语句来检查对象是否为空,这是一种防御性编程的体现。 在Java中,可以使用if语句来...

    pointer-sub.zip_sub

    3. **空指针与非空指针**:`NULL`或`nullptr`(C++11引入)可以与任何类型的指针进行比较,这用于检查指针是否已初始化。 在"8—7—4 指针的比较运算.cpp"这个文件中,可能包含了示例代码,展示了如何比较不同情况...

    vector介绍和用法

    在未指定元素初始化式的情况下,`vector`会使用默认构造函数来初始化每个元素。如果元素类型具有构造函数,那么会调用相应的构造函数进行初始化。对于没有构造函数的类型,会创建一个具有初始值的对象来进行值初始化...

    D3D8劫持,跟下硬件断点调试异常可以过CRC校验哦..

    CRC(Cyclic Redundancy Check)校验是一种广泛使用的错误检测方法,它通过计算数据的校验和来判断数据在传输或存储过程中是否发生错误。在游戏反作弊系统或者保护机制中,CRC校验通常用于验证程序代码或资源的完整...

    AMI_BIOS启动代码中英文对照表

    - **解析**:该代码表示BIOS正在执行一系列初始化任务,包括禁用某些硬件特性如不可屏蔽中断(NMI)、奇偶校验等,以及初始化BIOS本身、POST过程和实时数据区域。此外,还会根据CMOS设置初始化一些特定的标志。 #####...

    内存编程教学

    这种错误通常发生在没有初始化内存的情况下就对其进行访问,原因可能是忽略了初始化步骤或错误地认为内存默认初始化为零。实际上,全局和静态变量在未手动初始化时会被编译器初始化为零,但栈和堆内存不会被初始化。...

    param_ctor_iterator.rar_Modified

    在编程中,判断两个参数是否相等是一项基本操作,这里可能讲解了如何正确比较OpenMAX AL参数,确保配置的一致性。 6. **param_types.pass.c**:这个文件可能涵盖了OpenMAX AL中不同类型的参数,包括它们的定义、...

    空指针异常解决办法.md

    1. 使用静态工厂方法创建对象时,考虑是否提供了不可变的、初始化好的对象,从而避免返回null值。 2. 在接口设计中,对于返回值可能为null的情况,应该在文档中明确说明。对于客户端来说,在调用接口方法之前应当...

    练习函数的指针操作,九九乘法表,,判断闰年,n阶乘

    "判断闰年"则可能需要编写一个检查年份是否为闰年的函数,并通过函数指针调用。"n阶乘"可能需要一个计算阶乘的函数,可以使用函数指针传递不同的n值来计算。 这些知识点是C语言中函数指针的基本用法,通过`function...

    os_cpu_a.rar_OS_CPU_A_V2

    本文将聚焦于"OS_CPU_A_V2",即EFM32 uc/OS-II v2.86版本中的内核文件更新,探讨其中对PSP(Process Stack Pointer)初始化判断方法的改进,以解决内存分配可能导致的PSP错误问题。 uc/OS-II是专为微控制器设计的一...

    编译原理:C语言文法

    声明(Declaration)可以是初始化声明器(init_declarator)或初始化声明器列表,每个初始化声明器由声明符和可选的初始值设定项(initializer)。初始值设定项可以是赋值表达式,也可以是初始化列表。语句列表则由...

    C语言中的空指针、空指针常量、NULL &amp; 0.docx

    在C语言中,空指针、空指针常量、NULL和0是编程时经常会遇到的概念,它们在处理指针时扮演着至关重要的角色。...在实际编程中,确保正确地使用空指针常量来初始化或检查指针,避免出现未定义的行为或内存错误。

    C语言指针第讲PPT课件.pptx

    指针还有一项重要特性是,未初始化的指针可能会指向不确定的内存位置,直接使用这样的指针可能导致未定义的行为,因此必须在使用前进行初始化。另外,`NULL`或`0`常用于表示空指针,可以用来检查指针是否已指向有效...

    fifo.rar_fifo_同步fifo

    1. **初始化**:设置初始的读写指针,可能还需要初始化其他状态变量。 2. **写操作**:在写操作中,首先要检查FIFO是否已满。如果未满,将数据写入存储单元,并更新写指针。同时,可能需要更新空满标志或计数器。 ...

Global site tag (gtag.js) - Google Analytics