• C

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;
...
flfmdllAsked:
Who is Participating?
 
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.