QT中使用全局变量的BUG?请一定要看清楚我的问题再回答!!!
好几天了。我按照C++的标准,在头文件中加入了externintvar_name;而且在CPP文件里面也引用了头文件。但是在类的槽函数定义中却不能使用全局变量。我已经在一...
好几天了。我按照C++的标准,在头文件中加入了
extern int var_name;
而且在CPP文件里面也引用了头文件。但是在类的槽函数定义中却不能使用全局变量。我已经在一个函数中对全局变量进行了初始化,但是依然报错。function_name_1()和 function_name_1()都是声明的PUBLIC SLOTS。编译的时候说function_name_2()中的变量没有初始化。然后运行的时候就报RUN TIME的错,比较诡异,是VC++报的错。QT在DEBUG的时候提示的是
HEAP[maintest.exe]:
Invalid allocation size - A8444118 (exceeded 7ffdefff)
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
QWaitCondition: Destroyed while threads are still waiting
源代码:
C/C++ code
extern int var_name ; void MainWindow::function_name_1() { int var_name; var_name=1; }; void MainWindow::function_name_2() { // int var_name;不管是否定义这个都会出错!!! //先调用函数function_name_1()后再调用function_name_2() some_other_function(var_name); };
整理后的代码,先前的有点乱
extern int var_name ;
void MainWindow::function_name_1()
{
int var_name; var_name=1; };
void MainWindow::function_name_2()
{
// int var_name;不管是否定义这个都会出错!!!
//先调用函数function_name_1()后再调用function_name_2() some_other_function(var_name);
}; 展开
extern int var_name;
而且在CPP文件里面也引用了头文件。但是在类的槽函数定义中却不能使用全局变量。我已经在一个函数中对全局变量进行了初始化,但是依然报错。function_name_1()和 function_name_1()都是声明的PUBLIC SLOTS。编译的时候说function_name_2()中的变量没有初始化。然后运行的时候就报RUN TIME的错,比较诡异,是VC++报的错。QT在DEBUG的时候提示的是
HEAP[maintest.exe]:
Invalid allocation size - A8444118 (exceeded 7ffdefff)
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
QWaitCondition: Destroyed while threads are still waiting
源代码:
C/C++ code
extern int var_name ; void MainWindow::function_name_1() { int var_name; var_name=1; }; void MainWindow::function_name_2() { // int var_name;不管是否定义这个都会出错!!! //先调用函数function_name_1()后再调用function_name_2() some_other_function(var_name); };
整理后的代码,先前的有点乱
extern int var_name ;
void MainWindow::function_name_1()
{
int var_name; var_name=1; };
void MainWindow::function_name_2()
{
// int var_name;不管是否定义这个都会出错!!!
//先调用函数function_name_1()后再调用function_name_2() some_other_function(var_name);
}; 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询