【发布时间】:2016-09-23 09:39:59
【问题描述】:
#include<stdio.h>
void f(int *p) {
static int data = 5;
p=&data;
}
int main(void) {
int *ip=NULL;
f(ip);
printf("%d\n", *ip);
return 0;
}
如果可能的话。 什么是原因错误? 如何修复代码?
【问题讨论】:
-
p是ip的副本,如果您更改p,则不会更改ip。 -
请原谅这个显而易见的问题,但是如果不是用
void从f返回结果,难道不是更好地返回地址而不是首先使用参数吗? -
这个问题已经被问过很多次了,一个标准的答案会很棒。