【发布时间】:2019-03-30 06:42:27
【问题描述】:
显示本地函数中引用的指针的值对我来说很有意义,在主函数中调用此本地函数,指针所引用的值发生了变化。
#include<stdio.h>
char *getAnotherString(){
char target[] = "Hi, ComplicatedPhenomenon";
char *ptrToTarget = target;
printf("ptrToTarget = %p\n", ptrToTarget);
printf("ptrToTarget = %s\n", ptrToTarget);
return ptrToTarget;
}
int main(){
char *ptrToTarget = NULL;
ptrToTarget = getAnotherString();
printf("ptrToTarget = %p\n", ptrToTarget);
printf("ptrToTarget = %s\n", ptrToTarget);
return 0;
}
我希望输出像
ptrToTarget = 0x7ffeeed1c950
ptrToTarget = Hi, ComplicatedPhenomenon
ptrToTarget = 0x7ffeeed1c950
ptrToTarget = Hi, ComplicatedPhenomenon
实际输出是
ptrToTarget = 0x7ffeeed1c950
ptrToTarget = Hi, ComplicatedPhenomenon
ptrToTarget = 0x7ffeeed1c950
ptrToTarget = Hi, ComplicatedP
【问题讨论】: