[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 287
  • Last Modified:

Global variables

I have the following declaration in the header file of my project. This header file is included in every source file of the project. At one point in my main routine, I set this pointer to an address. After that, I start a series of threads that use the pointer. The problem is, some of the routines I call don't show the value I set prior to calling them but instead show NULL (the pointer's compile time value). What's wrong?

...
static struct CONNLIST *pProcessList = NULL;
...
0
flfmdll
Asked:
flfmdll
1 Solution
 
yonatCommented:
"static" means file scope. So there is a separate pProcessList for each file that #includes this header. Replace "static" with "extern" in the header:
    extern struct CONNLIST *pProcessList;
and define the variable in just *one* of your .c files:
    struct CONNLIST *pProcessList = NULL;

0
 
flfmdllAuthor Commented:
Thank you. That works just fine. My excuse: it's been a very long time since I have used global variables.
0

Featured Post

Easily manage email signatures in Office 365

Managing email signatures in Office 365 can be a challenging task if you don't have the right tool. CodeTwo Email Signatures for Office 365 will help you implement a unified email signature look, no matter what email client is used by users. Test it for free!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now