Ниже приведен полный код
Краткое описание моей проблемы ниже:
У меня есть одна глобальная структура, как упомянуто ниже в file1.c, и она инициализируется с некоторым значением в file1.c функцией "assign_value ()", и теперь я печатаю это значение функцией "print_value ()" из file2.c.
Проблема в том, что: не печатается правильное значение из file2.c, с другой стороны, если я вызываю "print_value ()" из file1.c внутри функции "assign_value ()", как упомянуто ниже, тогда он показывает правильное значение.
Пожалуйста, подскажите, что мне не хватает, почему я не могу напечатать правильное значение, вызвав функцию print_value () в file2.c
file1.c
My_struct_one - это вложенная структура, содержащая другую структуру My_struct_two, а my_struct_obj_global - глобальная переменная в file1.c
//file1.c
#include <stdio.h>
#include "file1.h"
typedef unsigned long int List;
typedef struct
{
List* my_list;
}My_struct_two;
typedef struct
{
My_struct_two struct_two;
}My_struct_one;
My_struct_one struct_global;
void assign_value()
{
List value=9;
struct_global.struct_two.my_list = &value;
print_value();
}
void print_value()
{
printf("inside print");
printf("value=%u\n",*(struct_global.struct_two.my_list));
}
file1.h
//file.h
#ifndef _file1_c
#define _file1_c
void print_value();
void assign_value();
#endif
file2.c
#include
#include "file1.h"
int main()
{
assign_value();
print_value();
return 0;
}
ВЫВОД:
внутри printvalue = 9
внутреннее значение печати = 4195506
У меня сомнение, почему я не могу получить доступ к значению из file2.c,