#include <stdio.h>
#include <malloc.h>
void f(int * q) {
// *p = 200;//error:p变量并没有在该函数中定义
// q = 200;//error:字节将地址更改,没有达到要求
*q = 200;//ok
// free(q);//error:将导致值刚刚被更改,然后q指向的4个字节的内存就被释放了,4个字节所对应的值自然不复存在,只留下一个垃圾值12190032
}
int main(void) {
int *p = (int *)malloc(sizeof(int));//sizeof(int)返回是int所占的字节数
*p = 10;
printf("%d\n",*p);//>>10
f(p);//调用f()函数,将*p所对应的变量值改为200
printf("%d\n",*p);//200
return 0;
}
输出结果:
10
200
--------------------------------
Process exited after 0.03842 seconds with return value 0
请按任意键继续. . .