问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

返回指针值的函数怎么返回一个局部变量或者函数内部分配的地址?4

发布网友 发布时间:2024-02-23 17:06

我来回答

5个回答

热心网友 时间:2024-08-06 15:41

在返回的时候局部变量将它复制给另一在全局的变量,所以它本身是销毁了,可是他复制的并没有销毁,而你所问的是返回的是const int& 是说她是一个常引用,即返回值不能被改变而且是一个变量的别名,而此题sum是局部变量,不是什么局部变量的引用。类似于:
#include <iostream>
using namespace std;

const int& get(const int x ){
int sum = x;
sum++;
return sum;
}

int main(){
cout<<get(5)<<endl;
}

若你改变该函数,把sum变作引用,改写函数,则返回sum就报错了。

热心网友 时间:2024-08-06 15:34

局部变量理论说是不能返回的,但在大多数编译器中是可以返回的,要不return就没用了。
局部变量不一定一离开作用域就释放了,系统有可能在某个特定时刻批量的释放内存。
还有,你应该有个变量接收返回值的,比如float* p=FindRow(...),返回值存入p中,局部变量就完成任务了。

热心网友 时间:2024-08-06 15:38

#include "stdio.h"
#include "string.h" //这里记得要引用这个库,这是strcpy的头文件
char* GetFileName()
{
char filename[20] = "file_0001.dat"; //这块不能用filename[],
//没有这种类型,那种形式只能做为函数参数来使用,不能用在变量声明
//这里声明的filename是一个局部变量,退出函数时将被编译器收回分配的空间
strcpy(filename,"file_xxxx");
return filename; //由于filename是一个局部变量,退出函数时将被编译器收回分配的空间
} //所以返回的时候将失败
void main()
{
char* s;
s = GetFileName();
printf("%s\n", s);
}
如果想返回一个有效的地址,那么就用malloc吧

#include "stdio.h"
#include "string.h" //这里记得要引用这个库,这是strcpy的头文件
#include "stdlib.h"
char* GetFileName()
{
char *filename = (char*)malloc(20); //这里用的是malloc动态分配的地址.这样退出函数时将不会收走指针

strcpy(filename,"file_xxxx");
return filename;//这时filename是动态分配的地址,所以退出函数时不会被收回空间
}
void main()
{
char* s;
s = GetFileName();
printf("%s\n", s);
free(s);//用完指针记得收回
}

热心网友 时间:2024-08-06 15:40

静态分配空间使用后再释放

热心网友 时间:2024-08-06 15:39

可以new一个指针,然后返回,不过得手动释放指针。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
求电脑玩安卓游戏的方法。步骤。以及所有的文件~谢谢 。有的联系我~ 我在电脑管家软件管理下的鹰击长空2都是解压包 澳洲留学读研申请攻略 澳洲留学申请时间是什么时候 去澳大利亚上大学需要什么手续 澳洲留学申请流程时间如何? 中南财经政法大学保险精算专业介绍 黄福记小吃梅干菜扣肉饼怎么样 如何开一家梅干菜扣肉饼店,成本要多少 在照明行业LED配光曲线图怎么看 C++中,如果返回一个被调函数的局部变量的首地址,而在主调函... 小马虎计算51+52+53+……+60,抄写时不小心漏了一个加号,把两个两位数... 一年级小学生数学试题:194余2,怎样计算? 一年内第二次强制修改 国家土地存包三十年不变是从那年开始的 科科群岛租借30年还能续约吗 如何强制二次修改 Axure软件如何制作读秒的页面效果? 土地30年不变的承包合同是从那年那月那日开始的 金蝶云星空有没有办法限定只能改别人制单的某个特定字段内容 公务活动作文周记一篇100字 散户怎么看股票的筹码 用苹果手机怎么做到第二次修改 大姨妈来了为啥老是反胃,会不会是有小孩 两篇500字(不能太多也不能太少) 的美文(不要网址)急 去日本京都旅游的最佳时间是什么时候 什么季节适合去京都旅游? 半条命恐惧之泣按什么键开门4 半条命、恐惧之泣没灯而且一换双持武器就变成三只手 注.手机的... 半条命恐惧之泣怎么调武器秘籍 ...要详细..43 “指针变量作为函数参数的作用:将一个变量的地址传送到另一个函...71 c语言函数中,结构体变量的地址可以返回,怎么普通变量的地址不... 为什么C语言函数中可以返回局部变量而不能返回局部变量的指针?...28 微信注销的60天期间内还能通过搜索到我吗? 如何把改第二次? 被注销的别人还能搜到吗 有什么去北京回龙观打卡的攻略? 问一部电影,李若彤和金城武主演 碗莲什么时候种植? 碗莲几月份种植碗莲适合种植的时间推荐 ...他被称为___、___。他的主要作品有___、___、___、__ 满天星的株距是多少 成语填空:下落()(),()()之冤 韩国哪个男歌星声音比较沙哑 天福林雅华是福清哪里人 和平精英二级密码怎么开启和平精英二级密码如何打开 不经巨大的困难,不会有伟大的事业 玻璃水杯刻什么字玻璃水杯子刻字短句 每天祝福语大全每日祝福语 求YY靓号激活码