C语言之实际问题——指针赋值

来源:互联网 发布:财会软件 编辑:程序博客网 时间:2024/05/22 07:40

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.


0 0
原创粉丝点击