c++ - 在另一个文件中访问 malloc 的函数

标签 c++ c pointers struct

如何访问另一个文件中存在的函数中的 malloc 元素

文件1.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;
}

如何访问另一个文件(例如 file2.c)中的 str 值。我的想法是创建一个 SomeDefaultStructurefromHeader 的新元素,然后以某种方式将 str 指向它。如果将 str 声明为 extern 然后在文件 2 中调用它,那么在这里使用 extern 会有帮助吗

例如: 文件2.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
} 

我如何实现这一目标?

谢谢

最佳答案

你应该像这样在 file1.c 中声明它:

struct SomeDefaultStructurefromHeader *str;

并在 file2.c 中添加外部说明符:

extern struct SomeDefaultStructurefromHeader *str;

关于c++ - 在另一个文件中访问 malloc 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26340020/

相关文章:

c - 如何从数组中打印出指针指向的值

objective-c - 将 C 指针添加到 NSMutableArray

c++ - 这个 C++ 转换为枚举有问题吗?

c++ - 如何在 C++ 线程之间传递静态成员变量的更改

c - ARM Keil 错误 #17 预期为 "]"、C3910W : Old syntax

c - 将c头文件翻译为delphi 2006

c++ - 无法在 Visual Studio 2005 中#include <dirent.h>

c++ - 我可以为许多元素添加事件处理程序吗?

c - 如何重置 while 循环?

C# 数组和指针