C语言之实际问题——指针赋值
2015-06-06 10:20
381 查看
C语言之实际问题——指针赋值
代码:
const u8 testbuf[20]={0}
void fun(u8 mode)
{
u8* ptbuf=0;
switch mode:
case 1:
ptbuf = testbuf;
printf(ptbuf);
;break;
case 2:
ptbuf[0]=1;
ptbuf[1]=1;
printf(ptbuf);
;break;
}
上述代码,case1是正确的;
cse2是错误的,函数只分配了ptbuf这个指针的存储空间1个单元,当给赋值ptbuf[0]任然是正确的,但是当赋值ptbuf[1]是就会导致堆栈溢出,产生fault.
代码:
const u8 testbuf[20]={0}
void fun(u8 mode)
{
u8* ptbuf=0;
switch mode:
case 1:
ptbuf = testbuf;
printf(ptbuf);
;break;
case 2:
ptbuf[0]=1;
ptbuf[1]=1;
printf(ptbuf);
;break;
}
上述代码,case1是正确的;
cse2是错误的,函数只分配了ptbuf这个指针的存储空间1个单元,当给赋值ptbuf[0]任然是正确的,但是当赋值ptbuf[1]是就会导致堆栈溢出,产生fault.
相关文章推荐
- c语言之sizeof函数
- C++ hex和oct
- 【Palindrome Number】cpp
- PAT 1004 To Fill or Not to Fill (25)
- PAT 1003 Sharing (25)
- PAT 1002 Hello World for U (20)
- c#/c++什么是接口-接口和抽象类
- C/C++心得-面向对象
- palindrome number
- C++中的动态内存与智能指针
- c语言大数阶乘和计算阶乘末尾的0的个数
- C++中如何计算程序运行的时间
- 卫星照片
- C++函数可变参数实现原理探究——以实现printf为例
- c++的句柄
- 允许并列的排名
- C++指针与引用简析
- C语言使用函数递归判断栈的生长方向
- c语言循环链表的问题
- 关于头文件和库文件