c++ std::cout问题
发表于 : 2009-06-24 10:30
小弟最近遇到一个问题,如下
主程序a.cpp
#include "b.h"
int main()
{
int *abc,*abcd;
*abc=123;
abcd=c(abc);
std::cout<<"s"<<*abcd;
return 0;
}
b.h文件
#include <iostream>
int *c(int *a);
b.cpp文件
#include "b.h"
int *c(int *a)
{
int *b;
b=a;
std::cout<<"bֵ:"<<*b<<"\n";
return b;
}
我在WINDOWS上用tdm gcc 4.4.0版本编译。
b.h b.cpp两个文件里的函数可以顺利执行输出信息,只有a.cpp里的std::cout不能输出而且还导致程序崩溃。
症状是
std::cout<<"s"<<*abcd;这行,如果这样写,会让程序崩溃,弹出一个对话框,上面写:“a.exe 遇到问题需要关闭。我们对此引起的不便表示抱歉。“但如果改成std::cout<<*abcd;就可以不让程序崩溃还能输出信息,如果改成std::cout<<*abcd<<"s";也没问题。
各位高手,这个问题怎么办呢?谢谢了。
主程序a.cpp
#include "b.h"
int main()
{
int *abc,*abcd;
*abc=123;
abcd=c(abc);
std::cout<<"s"<<*abcd;
return 0;
}
b.h文件
#include <iostream>
int *c(int *a);
b.cpp文件
#include "b.h"
int *c(int *a)
{
int *b;
b=a;
std::cout<<"bֵ:"<<*b<<"\n";
return b;
}
我在WINDOWS上用tdm gcc 4.4.0版本编译。
b.h b.cpp两个文件里的函数可以顺利执行输出信息,只有a.cpp里的std::cout不能输出而且还导致程序崩溃。
症状是
std::cout<<"s"<<*abcd;这行,如果这样写,会让程序崩溃,弹出一个对话框,上面写:“a.exe 遇到问题需要关闭。我们对此引起的不便表示抱歉。“但如果改成std::cout<<*abcd;就可以不让程序崩溃还能输出信息,如果改成std::cout<<*abcd<<"s";也没问题。
各位高手,这个问题怎么办呢?谢谢了。