[vtkusers] Access violation when using vtkPolyDataReader
tom fogal
tfogal at apollo.sr.unh.edu
Fri Jul 29 11:30:56 EDT 2005
<42E947AC.3080209 at nmr.mgh.harvard.edu>Sean McInerney writes:
<snip>
>3. Why not use C++'s operator new? It throws an exception and aborts by
>default if an allocation fails.
good call.
>David Cole wrote:
<snip>
>>> assert(readers=(vtkPolyDataReader**)calloc(inputs,sizeof(vtkPolyDataReader*
>)));
You cannot use C memory allocation routines to get memory for C++
objects. If you want an array of vtkPolyDataReaders, you want to do
something like this:
readers = new vtkPolyDataReader[number_of_elements_in_array];
I'm not sure VTK's allocation model (via ::New()) allows this. You
could probably declare the 'readers' variable as an array in the
function, and then allocate. For example:
void somefunc() {
int i;
vtkPolyDataReaders *readers[10];
for(i=0; i < 10; ++i) { readers[i] = vtkPolyDataReader::New(); }
}
HTH,
-tom
More information about the vtkusers
mailing list