51单片机中,指针函数 在C语言程序 如何使用?

现在使用的一款类似于51的单片机。其中一个子函数需要返回5个字节的数据,因此想用一下“指针函数”,将5个字节的数放在一个数组里面。最后,返回这个数组的地址,即指针。
可是,单片机函数执行完以后会释放空间,会不会返回的指针变量在运算的时,此时该地址的数据已经改变了呢?
暂时还不想用全局变量来定义数组,全局变量又一直占用资源了。
求一位高手指导一下!!谢谢!!

第1个回答  2014-08-15
你好,比较方便的实现方式是在函数的外部申请数组;在调用函数的时候传入数组的地址进行操作。如果一定要在子函数内部申请空间并返回地址,那么需要在子函数内部动态申请内存空间。具体的方法一般是使用标准库中的malloc函数。对于c51函数库,参考这个链接:http://www.keil.com/support/man/docs/c51/c51_malloc.htm
第2个回答  2014-08-16
指针读取数组,你可以定义一个全局数组变量,要比指针方便。以后的函数就直接访问这个数组就行了,本回答被提问者采纳
第3个回答  2014-08-15
我们 给 单片机函数 起个名字 void get5Bytes(char* buf)

在调用get5Bytes时传入一个5字节的数组buf,这样就不用担心函数返回时内存被销毁啦本回答被网友采纳
第4个回答  2014-08-15
你调用函数的时候是需要给地址的啊,比如说你在主函数中调用子函数,给子函数传递一个地址参数,这个地址是在主函数中的,子函数执行完也不会释放空间,只有主函数执行完才会。
第5个回答  2014-08-15
先定义一个还有五个字节的数组,把地儿占着
相似回答