c++ 指针基础问题 指针已经被初始化为NULL了,为啥还会出错?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ 指针基础问题 指针已经被初始化为NULL了,为啥还会出错?相关的知识,希望对你有一定的参考价值。
#include<iostream>
using namespace std;
void func2(int *value)
*value = 2;
void func1()
int *p =NULL;
func2(p);
int main()
func1();
return 0;
指针变量初始化为NULL啥意思?
将指针初始化NULL即将指针初始化为0。NULL宏是定义在标准库头文件stddef.h中。宏定义如下:
#undef NULL
#if defined(__cplusplus)
#define NULL 0
#else
#define NULL ((void *)0)
#endif
可以看出c++中
NULL为(int)0
,
C中NULL为(void*)0。看来C和C++中NULL宏的值略有不同。 参考技术A NULL的定义是这样的
#define NULL ((void *)0)
应用程序是不能访问0地址的,所以可以用0地址来表示一个空指针。
if(ptr != NULL)/*确保指针已经被初始化*/
以上是关于c++ 指针基础问题 指针已经被初始化为NULL了,为啥还会出错?的主要内容,如果未能解决你的问题,请参考以下文章