I have some code in C++:
// A.h
extern const char *names[3];
// B.cpp
#include "A.h"
const char *names[3] = {
"Name1",
"Name2"
"Name3"
};
void getName()
{
char *name;
strncpy(name, names[0], 5);
};
// C.cpp
#include "A.h"
You have some errors in the example, you provided, I assume you do not just copy/paste the source. Like the semicolon in line
const char *names[3]; = {, or the missing comma in the list of strings next to "Name2"
So about your question. You should not include the A.h in you B.cpp, I mean the line
#include "A.h" should be removed. You include the header file, and use the extern keyword only where you will use the
*names pointer in other cpp files.