【发布时间】:2013-08-09 19:52:14
【问题描述】:
我对 C 语言比较陌生。我正在尝试将变量的地址传递给函数,然后让该函数为传递的该变量地址分配一个 char 指针。编译器没有报错,但代码也不能正常工作。
typedef enum {
VAL_1,
VAL_2
} member_type;
char *a1="Test 123";
int func (member_type x, char *temp) {
switch(x) {
case VAL_1:
temp = a1;
return 1;
case VAL_2:
return 2;
}
return 0;
}
int main(){
member_type b;
static char *d1;
b = VAL_1;
printf("%p\n",&d1);
func(b, &d1);
printf("Val_1:%s\n",d1);
return 0;
}
执行时出现以下错误:
-bash-3.00$ ./a.out
0x500950
Name:(null)
谁能帮我解决一下?
【问题讨论】:
标签: c string pointers char memory-address