C将指针指定为NULL
发布时间:2020-12-16 03:10:48 所属栏目:百科 来源:网络整理
导读:我对C中的指针有一些基本的误解,这应该很简单,但搜索没有什么.我不明白以下代码的行为; #include stdlib.h#include stdio.hvoid my_function(char *);int main(int argc,char *argv[]) { char *ptr; ptr = malloc(10); if(ptr != NULL) printf("FIRST TEST:
我对C中的指针有一些基本的误解,这应该很简单,但搜索没有什么.我不明白以下代码的行为;
#include <stdlib.h> #include <stdio.h> void my_function(char *); int main(int argc,char *argv[]) { char *ptr; ptr = malloc(10); if(ptr != NULL) printf("FIRST TEST: ptr is not nulln"); else printf("FIRST TEST: ptr is nulln"); my_function(ptr); if(ptr != NULL) printf("SECOND TEST: ptr is not nulln"); else printf("SECOND TEST: ptr is nulln"); } void my_function(char *a) { a = NULL; } 哪些输出 FIRST TEST: ptr is not null SECOND TEST: ptr is not null 为什么第二个测试仍然看到指针不为NULL?我正在尝试使用NULL指针分配作为一种“返回标志”来表示功能的某种故障.但是之后测试指针,似乎不是NULL. 解决方法
这是因为指针是通过值而不是引用的.如果要更改函数内的指针,则需要将实际指针作为指针传递,即指向指针的指针:
void my_function(char **a) { *a = NULL; } 使用操作符&当你调用函数获取指针的地址时: my_function(&ptr); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- react_结合 redux
- logback logback.xml常用配置详解(一)<configuration> a
- vb6 – 检测Visual Basic 6 IDE外部的文件更改?
- 如何更改Postgresql上的模板数据库集合编码
- ruby-on-rails – Rails中的Unicorn&Pry
- AJAX的简介和使用
- Fastjson是一个Java语言编写的高性能功能完善的JSON库。
- Swift下自定义printf, 在状态DEBUG打印, 在release状态不打
- ruby-on-rails – Rails:将JSON存储在MongoDB中
- c# – 在configSource中使用外部.config文件会产生错误