嵌入式开发中的一些细节续(dlmu2001)
来源:互联网 发布:ai人工智能程序下载 编辑:程序博客网 时间:2024/06/05 06:45
7.关于局部变量
局部变量是在栈上分配的空间,只在函数内部有效,退出函数,空间就释放了,看一下一下几个例子
1)void* dlmu_malloc()
{
char Buf[100];
return (void*)Buf;
}
2)void*dlmu_malloc()
{
char *p;
char Buf[100];
p = Buf;
return (void*)p;
}
这两个例子都是分配不到空间的,因为Buf是局部变量,随着函数退出(抛栈),空间就释放了。
3)void *dlmu_malloc(unsingned long Size)
{
char *p;
p = malloc(Size);
return p;
}
这是可以分配到空间的,因为malloc是在堆上分配的,要自己管理。
8.函数参数的传值和传址,看一个例子
char dlmu_malloc(unsigned long Size,char *Buf)
{
Buf = malloc(Size);
return 1;
}
注意函数调用过后,这个Buf的值是不会改变的,如果传入时Buf的值是NULL,则传出时Buf也是NULL,这是因为Buf虽然是个指针,但是这里还是一个传值操作,如果要完成传址,应该这样
char dlmu_malloc(unsigned long Size,char **Buf)
{
* Buf = malloc(Size);
if(*Buf ==NULL) return 0;
return 1;
}
这才是传址
- 嵌入式开发中的一些细节续(dlmu2001)
- 嵌入式开发中的一些细节(dlmu2001)
- 嵌入式开发中的一些细节
- 嵌入式开发中的细节
- 嵌入式底层开发的一些细节
- Servlet开发中的一些细节
- 开发中的一些小细节
- 嵌入式开发中的一些问题
- WAP开发中的一些细节及经验
- Delphi开发中的一些细节问题
- Qt 开发中的一些细节(二)
- 理解嵌入式开发中的一些硬件
- 嵌入式开发中的一些网站收集
- 经验与教训(1)--嵌入式开发随笔(dlmu2001)
- 经验与教训(2)--嵌入式开发随笔(dlmu2001)
- 网络中的一些细节
- 计算机网络中的一些细节
- 编程中的一些细节
- 汇编 中关于补码的问题
- 使用c#调用oracle存储过程获取存储过程参数信息
- Monash University Digital Perception Laboratory
- 数据库编码设计
- c#中使用call调用oracle存储过程并获取out参数值
- 嵌入式开发中的一些细节续(dlmu2001)
- c#中利用pl/sql匿名块和游标获取多个结果集
- c#中里有pl/sql匿名块和绑定变量在执行insert后获取当前序列值
- Eclipse 运行命令行参数大全
- 关于ASP+和xml的比较的问题
- MCI编程--VC++6.0下MIDI、WAV及CD的播放
- Kevin Mitnick 小故事
- debug监视工具---debugview
- 玩电脑,还是被电脑玩