Windows 指针对象在Visual C++;6

Windows 指针对象在Visual C++;6,windows,visual-c++-6,Windows,Visual C++ 6,我将粘贴一段代码片段并解释我面临的问题 void materialPropertiesDlg::OnNext() { contiBeam *continousBeamPtr; contiBeam contiBeamObj; UpdateData(TRUE); switch (m_steel_grade) { // Do Something } continousBeamPtr->setMaterial(m_conc_gr

我将粘贴一段代码片段并解释我面临的问题

void materialPropertiesDlg::OnNext() {
    contiBeam *continousBeamPtr;
    contiBeam contiBeamObj;
    UpdateData(TRUE);
    switch (m_steel_grade) {
        // Do Something
    }   
    continousBeamPtr->setMaterial(m_conc_grade, m_steel_grade);
    OnOK();
}
如您所见,在第2行中创建了一个指针对象,在下一行中创建了一个对象。因此,我调用类
contiBeam
的成员函数
setMaterials()
。我可以很容易地使用对象
contiBeamObj
,但是当我使用
contiBeamPointer
调用函数时,windows会抛出一个错误

应用程序已停止工作


我能够做必要的事情,我只想知道可能的原因是什么?

您正在使用指针
contiBeam*continousBeamPtr而没有分配它

这是未定义的行为,会使应用程序崩溃

您应该使用
new
为指针分配(保留内存),如下所示:

 contiBeam *continousBeamPtr = new contiBeam;

然而,最终的问题是,为什么要首先使用指针?你需要一个吗?实际上,我是Visual C++和编程的新手,我通过尝试不同的东西来学习。另外,我想知道使用
new
有什么帮助?它的作用是什么?您提供的解决方案不起作用,起作用的语句是
contiBeam*continousBeamPtr=new contiBeam@vin对不起,我弄错了。它确实应该是
new
后面的类型
new
为堆上的对象分配内存,并返回指向该内存的指针。