类指针初使化的问题
class LinkNode
{
public:
int nData;
LinkNode* pNext;
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
LinkNode* headNode;// = new LinkNode();
headNode->nData = 0;
headNode->pNext = 0;
cout<< headNode->nData << endl;
return a.exec();
}
求解释运行结果。
headNode new不new 结果都是 0
难道编译器会帮我初使化headNode?
环境 windows2003,vc2010
[解决办法]
默认构造函数表示压力很大~
[解决办法]
野指针,何必纠结此种问题?!
[解决办法]
#include <iostream>#include <cstdio>using namespace std;class LinkNode{public: int nData; LinkNode* pNext;};int main(){ LinkNode* headNode;// = new LinkNode(); headNode->nData = 0; headNode->pNext = 0; cout << headNode->nData << endl; cout << headNode << endl; cout << sizeof(*headNode) << endl; return 0;}
[解决办法]
给个默认构造函数!
[解决办法]
应该出个警告
[解决办法]
我的是中断了:你用的是release吧,赶紧换回debug;
Run-Time Check Failure #3 - The variable 'headNode' is being used without being initialized.
[解决办法]