在另一个文件中访问malloc& d函数

时间:2014-10-13 12:27:59

标签: c++ c pointers struct

如何访问另一个文件中存在的函数中的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
} 

我如何实现这一目标?

谢谢

2 个答案:

答案 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;