博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数返回局部变量
阅读量:6414 次
发布时间:2019-06-23

本文共 513 字,大约阅读时间需要 1 分钟。

  这是实习工作中遇到的一个问题,其实不能算是一个问题,只能算一个注意点吧。

  看程序:

unsigned char* read_file(int fd){        unsigned char buffer[256];        memset(buffer, '\0', sizeof(buffer));        read(fd, buffer, sizeof(buffer));        return buffer;}

  上面程序是有问题的,unsigned char buffer[256]定义的是一个局部变量,但程序跳出read_file函数时,buffer马上释放掉了,此时函数返回的是一未知。

  所以最好不要返回局部变量,那怎么解决,解决程序如下:

void read_file(int fd, unsigned char *buffer){        read(fd, buffer, 256);}

  将原来的局部变量作为参数传进来就行了。注意:此时read函数中不能用sizeof(buffer),因为sizeof(buffer)= 4 (对32位机来说)。为什么?请查看文章。

 

转载地址:http://ptdra.baihongyu.com/

你可能感兴趣的文章
[Array]448. Find All Numbers Disappeared in an Array
查看>>
因为我想在博客园长呆,所以给博客园提一些改进建议
查看>>
hdu 1087 Super Jumping! Jumping! Jumping! (DP)
查看>>
struts和struts2的区别
查看>>
JavaScript 自执行函数剖析
查看>>
软工作业--团队作业2
查看>>
Windows Phone 的后台代理不支持的 API
查看>>
as转换的问题
查看>>
【一首小诗】每一个难捱的日子都是一首诗
查看>>
养成良好的习惯-从运动开始
查看>>
鸟妈妈变形记(线程基础)
查看>>
ZOJ 1076 Gene Assembly
查看>>
JS数组push会覆盖前面的数据问题
查看>>
用SQL语句创建触发器
查看>>
Sublime Text 2 注册码
查看>>
用endnote导入bib
查看>>
关于除法运算的比较
查看>>
MySQL 存储过程学习笔记
查看>>
Elasticsearch——QueryBuilder简单查询
查看>>
欧拉回路模板
查看>>