当我们在执行上述程序时,会发现报错。
通过主程序调用函数时,系统为int型变量a开辟一块空间,空间里保存变量的值10,函数返回值为变量a的地址。但是当离开函数时,系统会释放空间。所以在主程序定义int型的指针变量接受函数的返回值a的地址时,再通过*p = 20,想改变a的值时,由于访问的地址已经被系统释放了,*p已找不到a变量地址里的内容了,这个时候就会产生野指针。
当我们在执行上述程序时,会发现报错。
通过主程序调用函数时,系统为int型变量a开辟一块空间,空间里保存变量的值10,函数返回值为变量a的地址。但是当离开函数时,系统会释放空间。所以在主程序定义int型的指针变量接受函数的返回值a的地址时,再通过*p = 20,想改变a的值时,由于访问的地址已经被系统释放了,*p已找不到a变量地址里的内容了,这个时候就会产生野指针。