gpt4 book ai didi

c - 是否可以使用指针从一个函数调用另一个函数的局部变量

转载 作者:行者123 更新时间:2023-11-30 17:08:47 24 4
gpt4 key购买 nike

例如,如果我要使用多个函数进行复杂的计算,其中每个函数完成部分工作,是否可以进行以下操作:

void initialize_equations() {

int t_constant;
time_t times;
double *current_time;
times= time(NULL);

t_constant = 365*24*60*60;


*current_time =times/t_constant;

printf("%Lf", current_time);
}

int year_day(time_t *crntT, int *constant) {

int year, month;
float year_l, month_l;

year_l=(&current_time)/365; //trying to call crntT from previous function
year=year_l+1970; //time starts at 1970 therefore turned it from float to int then summed time
month=((year_l-year)*12)+1; // Month starts at Jan therefore +1

}

最佳答案

在c中,无论它是否是指针,都不能访问在另一个函数中声明的局部变量。但是,只要您知道该内存块的地址,您就可以(但也许不应该)访问在另一个函数中分配的内存。

例如,如果您通过使用以下方式为局部变量“current_time”分配内存(您没有,但这是另一个问题):

double* current_time = (double*) malloc(sizeof(double));

并且您保留分配的内存的地址(“current_time”中保存的值)。然后,您可以访问另一个函数中分配的内存,只要您可以以某种方式让该函数知道该地址即可。

话虽如此,为什么不简单地将这个值保留在更高级别的位置,然后将其传递给所有需要该值的函数呢?

关于c - 是否可以使用指针从一个函数调用另一个函数的局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33535066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com