P108一个函数返回本地变量的地址是有风险的,

代码如下

 

全局变量和static对多线程来讲是不安全的

#include <stdio.h>

int *f(void);
void g(void);

int main(int argc,char const *argv[])
{
    int *p=f();
    printf("*p=%d\n",*p);
    g();
    p=f();
    printf("*p=%d\n",*p);
    g();
    printf("*p=%d\n",*p);
    return 0;

}
int *f(void)
{
    int i=12;
    int *m = &i;
    //printf("*p=%p\n",m);
    return m;
}
void g(void)
{
    int k=24;
    printf("k=%d\n",k);
    //printf("&k=%p\n",&k);
}

 

posted @ 2022-12-13 19:09  我们都不是哈士奇  阅读(32)  评论(0)    收藏  举报