10.坑-千万别把局部变量的指针作为函数的返回值 #include <stdio.h>#include<string.h>int* getarr(int*ipt);intmain() {inta =99;char*ch ;int*p = getarr(&a);//gets(ch);printf("%d\n", *p );/*坑:将局部变量a的pointer作为返回值返回 后果:函数执行完毕后会释放内存,销毁函数内定义的局部变...
{ char p[] = "hello";return p;} char* p = charTest();调用玩char p[]被释放 因为函数中的局部变量在函数调用结束后就会被释放;这句话是对的,局部变量超出其作用域后就会被释放掉 所以如果你在函数内部定义一个指针,并申请了空间;这句不怎么对,因为只查动态申请的内存都是在堆中申请...
一个典型的例子就是标准函数 scanf(),它从标准输入流中读入数据,然后将结果放在它的变量中,该变量由调用者提供的指针参数所引用: int var; scanf( "%d", &var ); 该函数调用会将字符串当作十进制数读入,然后转换为整数,再将它的值存储在局部变量 var 的内存地址上。 下面的函数 initNode()初始化一个结构...