Joh*_*ohn 2 c arrays static extern
我有一个非常大的数组,它在vc项目的许多文件中的许多函数之间共享.我的问题是,我必须在main()中声明它并在头文件中使用extern.由于数组对于堆栈而言太大,我必须使用静态,因此无法在头文件中使用extern声明.
我怎么解决这个问题?
编辑:
我所做的就像你说的那样但我得到错误LNK2001:未解析的外部符号
这是我的全球声明和外部声明:
main.c中
static unsigned char bit_table_ [ROWS] [COLUMNS];
hdr.h
extern unsigned char bit_table_ [ROWS] [COLUMNS];
ROWS和COLUMNS分别可以增长到1024和1048576
声明一个全局指针并在所有源文件中共享它(通过extern标题).然后填充该全局指针main().
编辑:
您对问题的评论似乎表明您将堆与堆混淆.只需使您的数组全局并extern通过标头中的声明共享对它的访问.问题解决了,没有搞笑的技巧.