返回值是什么类型,你今天检查了么?
来源:互联网 发布:温州高铁事故真相 知乎 编辑:程序博客网 时间:2024/05/02 00:08
好了,我知道很多人不屑这个。是啊return 后面有什么好说的?
但是我就在这个里面转了半天,才搞明白的:先看这个。
//...前略,为了说明也简化了函数的写法。
#include "windows.h"
#include "iostream.h"
#include "assert.h"
char * Funstr(void)
{
//...前略,为了说明也简化了函数的写法。
char strRes[20] = "school dasy.sekai";
assert(strRes != NULL);
char strDes[50] ;
strcpy(strDes,strRes);
return strDes;
}
void main()
{
char str[20];
int length = strlen(strcpy(str,"sekai"));
cout<<Funstr()<<endl;
}
返回堆内存
school dasy.sekai在输出的时候,恩?输出的是什么?
char strDes[50] ;
strcpy(strDes,strRes);
return strDes;
查了半天米错啊?后来看见了一个警告才注意到(话说做软件时间有时总是有警告,有时为了赶工也是能忽略就忽略,真不是好习惯呢。),
warning C4172: returning address of local variable or temporary
知道了,return 回的是什么?栈内存的东西啊!
改成:
char * Funstr(void)
{
//...前略,为了说明也简化了函数的写法。
char strRes[20] = "school dasy.sekai";
assert(strRes != NULL);
char strDes[50] ;
//.......如果是这样
char *strPtr = NULL;
strPtr = (char *)malloc(sizeof(char)*50+1);
strcpy(strPtr,strRes);
return strPtr;
利马成了正确的。真是要小心啊!
//注意本篇为原来写开发日记,原稿打出。不对之处请您指出
- 返回值是什么类型,你今天检查了么?
- 今天你blog了么?
- 今天你BI了么?
- 今天,你学子了么?-
- 今天你囧了么
- 今天你回归了么?
- 今天,你跨了么?
- 开卷有益 今天你读书了么?
- 今天,你被编译器耍了么?
- 今天,你提笔忘字了么?
- 今天你学经济学了么?
- 检查request返回值类型的一个小方法
- 你知道今天是什么日子吗?
- CheckReturn(检查返回值)
- web可用性检查列表--你的网站做了么?
- 今天你java了吗?
- 今天你表达了吗?
- 今天你冲浪了吗?
- tcl/tk参考——控制结构after
- gcc简介
- 天天努力
- C集锦
- 图灵辉煌3月:C#、JavaScript、ActionScript、CSS、SQL、SQL Server、软件测试、嵌入式系统巨著密集上市
- 返回值是什么类型,你今天检查了么?
- DELL INSPIRON 530初体验
- 《大规模C++程序设计》读书笔记27
- 能改变你使用习惯的十大免费软件
- 关于装修
- VC程序中实现控件的动态生成与响应(一)
- Linux下关于内存的查看
- DATEDIFF使用参考,求出两个指定日期的差值
- VisualFC0.8版本意见征集