如何访问另一个文件中存在的函数中的malloc&#ed; ed
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声明为extern,然后在文件2中调用它,那么使用extern会不会有帮助
例如: 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
}
我如何实现这一目标?
谢谢
答案 0 :(得分:3)
您应该在file1.c中声明它,如下所示:
struct SomeDefaultStructurefromHeader *str;
并在file2.c中添加extern说明符:
extern struct SomeDefaultStructurefromHeader *str;
答案 1 :(得分:2)
您需要在file2.c中声明以及:
extern struct SomeDefaultStructurefromHeader *str;
但是,在其中一个C文件中,您必须将全局变量定义为:
struct SomeDefaultStructurefromHeader *str;