Как получить доступ к malloc'ed элемент в функцию, которая присутствует в другом файлеДоступ к malloc'd функции в другом файле
file1.c
#include<xyz.h> //all header files
extern struct SomeDefaultStructurefromHeader *str;
void myfunction(){
str = (struct SomeDefaultStructurefromHeader*)malloc(sizeof(struct SomeDefaultStructurefromHeader));
str->element1 = 1;
str->element2 = 2;
}
Как я получить доступ к значениям в StR другой файл говорит file2.c. Моя идея состояла в том, чтобы создать новый элемент SomeDefaultStructurefromHeader, а затем как-то указать на str. Будет ли использование экстерном помощь здесь, если объявлена ул, как ехЬегп и затем вызвать его в файле 2
Для например: file2.c
struct SomeDefaultStructurefromHeader *st1;
void func2(){
st1 = (struct SomeDefaultStructurefromHeader*)malloc(sizeof(struct SomeDefaultStructurefromHeader));
st1 = str;
printf(st1->element1) // this might return the value str->element1 which is 1
}
Как этого добиться?
Спасибо
'St1 = ул;' является утечка памяти. – BLUEPIXY
Вы компилируете C или C++? Вы не должны бросать 'malloc' в C. И действительно, передайте адрес указателя или верните указатель вместо того, чтобы полагаться на глобальные переменные. – crashmstr
Для объявления используйте один общий файл заголовка ('.h'). А для копирования структуры используйте 'memcpy'. –