在我的代码中,我有这样一行:其中f是函数,t是指向结构的指针,destroy是释放指针t并返回NULL的函数。正如我所期望的那样,代码在一些编译器(cc、gcc、clang on OS X和clang on Linux)上成功编译和运行-在释放t之前,对t->a和t->b进行了评估。然而,当在Linux上使用cc/gcc编译时,我得到了一个分段错误,就像我试图取消引用空指针一样。这是什么原因造成的?
平台:Linux3.2.0 x86 (Debian )
我正在写一些类似于memset()、memcpy()等的函数。我使用了空指针来避免将函数类型指定为特定类型。但是,当我使用char指针取消对空指针的引用时,我不知道为什么要请求一个空指针。在我看来,空指针什么也不做。所以我的问题是,空指针是做什么的?