一个内存越界的问题
昨天写的代码,居然爆出一个内存越界的问题:但是看了半天没明白为什么,如果有人懂,请指教一下我这个新手&菜鸟吧。程序如下:void myTecplotReader::OPenTecplot(const char *filename )
{
vtkTecplotReader *reader=vtkTecplotReader::New();
reader->SetFileName(filename);
reader->Update();
vtkDataSetTriangleFilter* trifilter=vtkDataSetTriangleFilter::New();
trifilter->SetInputConnection(reader->GetOutputPort());
UStrGrid=trifilter->GetOutput();
}
爆出问题的是第一行的NEW函数,但是这是个库函数。
[解决办法]
好像用的是VTK啊。你确定是这样用的么?vtkTecplotReader是一个静态类么?没有对象的时候就先用::New函数??
[解决办法]
有时候爆出问题在第一行,不一定错误就在第一行
[解决办法]
vtkTecplotReader *reader=vtkTecplotReader::New();
New函数 是你自己实现的. 能看看里面怎么实现的么?
[解决办法]
#include <vtkTecplotReader.h>#include <vtkDataSetTriangleFilter.h>struct myTecplotReader{ void OPenTecplot(const char *filename );};void myTecplotReader::OPenTecplot(const char *filename ){ vtkTecplotReader *reader=vtkTecplotReader::New(); reader->SetFileName(filename); reader->Update(); vtkDataSetTriangleFilter* trifilter=vtkDataSetTriangleFilter::New(); trifilter->SetInputConnection(reader->GetOutputPort()); // UStrGrid=trifilter->GetOutput();}int main (int, char**){ myTecplotReader* OFT=new myTecplotReader(); OFT->OPenTecplot("1_0_0.vtu"); return 0;}
[解决办法]