返回函数局部指针的问题

本文通过示例分析了函数返回局部指针时可能遇到的问题,指出在栈上定义的临时变量随着函数返回会被销毁,导致返回的指针失效。强调函数返回应返回指针变量保存的地址,而不是指针变量本身。同时,讨论了局部指针可以指向栈、堆和静态区,只要不指向栈区,就可以正常返回。建议在函数中避免对全局指针直接操作,使用const int声明的全局指针更安全。
摘要由CSDN通过智能技术生成

下面举个例子
char* get_user_name(){
            char username[]="abc";//赋值语句
            return username;
}
这函数返回值是有问题的, 因为在函数体内定义了临时变量,它的值随函数返回后而销毁。
但是这样却是正常的
char* get_user_name(){
                char *username="abc";//先在静态区定义abc/0这个字符串,然后才用指针指向它。
                return username;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值