88问答网
所有问题
在运行程序时出现警告:warning C4172: returning address of local variable or temporary。怎样修改?
如题所述
举报该问题
推荐答案 2013-11-17
某函数返回的是局部变量的地址,因为局部变量在函数退出时就被mark为无效了,所以函数结束后所返回的这个地址不能确保包含能被接下来的代码使用的正确的值。
比如:
char* f(){ char a[] = "123"; return a; }
具体怎么修改要你把代码贴出来才好帮你解决
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://88.wendadaohang.com/zd/McVSaaScaVat1taacKK.html
其他回答
第1个回答 2013-11-17
char *get_string_1()
{
char p[200]="hello world";
return p;
}
这个要怎么改?
第2个回答 2013-11-17
要看你的程序是怎么样的嘛
相似回答
下面这句话是什么意思?请举个例子说明一下。
答:
int i = 10; //
warning
C4172:
returning
address
of
local
variable
or
temporary return i;} int& getNumRef(){ static int i = 10;return i;} / 因为在函数getNum结束之后,局部变量i的生命期已经结束了,这个i的在栈上的内存已经被删除了,这时候返回它的引用就会引用到未知的区域,是...
...
C4172:
returning
address
of
local
variable
or
temporary 求高手解 ...
答:
p 是本地变量,GetString函数推出后,p销毁。这部分内存将被其他程序段复用。传回p的地址,如果对改地址进行写操作,将导致内存内容破坏。
C语言字符串输出问题,急!以下代码应该输出什么?为什么?
答:
return p; ->
Warning
1
warning
C4172:
returning
address
of
local
variable
or
temporary c:\users\devilmyth\documents\visual studio 2008\projects\win32my1console\win32my1console\win32my1console.cpp 16 win32my1console 局部变量或临时的返回地址 输出:char p[]="hello world"; ->char...
求大神看看c++代码,不知道为啥数组首地址无法传出来
答:
建议把编译器的
warning
选项开启,大部分编译器会提示问题的,随便试了两个:gcc 4.9.2 下提示:[
Warning
]
address
of
local
variable
'result' returned [-Wreturn-local-addr]MSVC2013 (18.00.40629 for x86)下提示warning
C4172:
returning
address of local variable
or
temporary ...
看看这个C,我真无语了
答:
return ( c=='+'||c=='-'||c=='*'||c=='\');最后的'\'应该写成'\\'.H:\my doc\作业\编译\Syntax\parse.cpp(24)
: warning
C4172:
returning
address
of
local
variable
or
temporary 以上错误是因为return value;中的value是局部变量的地址, 它只在本函数内部才有效, 不能返回到...
C
语言,编译无错误,组建
时出现
错误。
答:
returning
address
of
local
variable
or
temporary 很明显,返回了局部变量,运行肯定出错呀。double *extend(double *price,double *quantity){ static double amo[10];//静态就可以了 int i;for(i=1;i<=10;i++){ amo[i] = price[i] * quantity[i];} return amo;} ...
cout输出字符指针
答:
答案是字符串存在的位置 f1返回一个字符串的首地址,这个字符串由编译程序保存
在程序
的初始化段中,这个段中一般保存你程序中出现的常量;f2的ret变量保存的仍然是初始化段中的字符串首地址;f3在堆中临时申请了一个数组,并由系统将初始化段中的字符串赋值到这个数组,现在f3返回的地址位于堆中,在f3...
一个奇怪的
C
语言问题,涉及到指针、数组、堆栈、以及printf,希望C语言大...
答:
所以,第一条printf语句已经把参数算出来并放到栈顶保存了。然后调用printf函数(函数调用需要用到栈建立访问连和控制链,而,原来的函数f执行完了,原本f是在栈顶的,所以,函数f的栈空间释放。数组空间也被释放),printf占用了栈,所以,把原来函数f的栈空间内容修改了。所以,第一条printf语句是可以...
大家正在搜
警告warning
warning警告铃声
警告warn
warning中文
warning标志
warning中文意思
warning是什么故障
warning铃声
warning名词
相关问题
warning C4172: returning addre...
warning C4172: returning addre...
在运行程序时出现警告:warning C4172: retu...
我声明的返回指针类型的函数 PCHAR abc();提示re...
C语言问题,这个错误怎么解决啊?
C语言中,为什么有时候会报错:function return...
c语言程序编错了求指正~~ warning C4101: '...
C语言 以下函数为什么会有warning,怎么修正?谢谢