全局变量声明错误导致崩溃
代码如下
file:main.cpp
#include "bad.h";
extern char *key;
void main(int c,char** v){
function(key);
};
file:bad.h
void function(char *);
file:bad.cpp
char key[8]={'0','1','2','3','4','5','6','7'};
void function(char * arg){
do something with arg;
}
现象 代码编译通过,但是运行时崩溃,看调用栈是崩溃在function里面,EXC_BAD_ACCESS,应该是内存访问错误,查看function的函数的参数arg=”“,全局变量key没有传进去。
解决 将main.cpp中的声明与bad.cpp中的声明统一为char key[8]问题得以解决。