<div dir="ltr">yeah target array is fine. </div><div class="gmail_extra"><br><div class="gmail_quote">On 3 September 2016 at 17:27, Mike Chinander <span dir="ltr"><<a href="mailto:chinander@gmail.com" target="_blank">chinander@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr"><br>
Has targetArray been initialized? If not, your program is crashing before it even tries to execute your loop body the first time.</p><div class="HOEnZb"><div class="h5">
<p dir="ltr">On Sep 3, 2016 1:54 AM, "Oliver Cairncross" <<a href="mailto:op.cairncross@gmail.com" target="_blank">op.cairncross@gmail.com</a>> wrote:<br>
</p>
<blockquote><p dir="ltr">><br>
</p>
</blockquote>
<p dir="ltr">> ></p>
<p dir="ltr">> It will crash when i = 0<br>
><br>
><br>
> On 3 Sep 2016 16:10, "Mike Chinander" <<a href="mailto:chinander@gmail.com" target="_blank">chinander@gmail.com</a>> wrote:<br>
</p>
<blockquote><p dir="ltr">><br>
</p>
</blockquote>
<p dir="ltr">> >></p>
<p dir="ltr">>> Is the end condition of your for loop correct? That's the only place targetArray appears.<br>
>><br>
>><br>
>> On Sep 3, 2016 12:49 AM, "Oliver Cairncross" <<a href="mailto:op.cairncross@gmail.com" target="_blank">op.cairncross@gmail.com</a>> wrote:<br>
</p>
<blockquote><p dir="ltr">><br>
</p>
</blockquote>
<p dir="ltr">> >>></p>
<p dir="ltr">>>> (Oh sorry I'll copy it down)<br>
>>><br>
>>> What I'm doing is pretty straight forward. I haven't changed the vtk code at all.<br>
>>><br>
>>> vtkDirectory * sourceDir = vtkDirectory::New();<br>
>>> sourceDir->Open(sourceString.<wbr>c_str());<br>
>>> vtkSortFileNames * sourceFiles = vtkSortFileNames::New();<br>
>>> sourceFiles-><wbr>SkipDirectoriesOn();<br>
>>> sourceFiles->NumericSortOff();<br>
>>> sourceFiles-><wbr>SetInputFileNames(sourceDir-><wbr>GetFiles());<br>
>>> sourceFiles->Update();<br>
>>><br>
>>> for (int i = 0; i < targetArray-><wbr>GetNumberOfValues(); i++)<br>
>>> {<br>
>>>      string s1 = sourceFiles->GetFileNames()-><wbr>GetValue(i); // crash!<br>
>>> }<br>
>>><br>
>>> Thanks<br>
>>> Ollie<br>
>>><br>
>>> On 3 September 2016 at 00:02, David E DeMarle <<a href="mailto:dave.demarle@kitware.com" target="_blank">dave.demarle@kitware.com</a>> wrote:<br>
</p>
<blockquote><p dir="ltr">><br>
</p>
</blockquote>
<p dir="ltr">> >>>></p>
<p dir="ltr">>>>> You forgot to reply all to keep the discussion on the mailing list for posterity.<br>
>>>><br>
>>>> David E DeMarle<br>
>>>> Kitware, Inc.<br>
>>>> R&D Engineer<br>
>>>> 21 Corporate Drive<br>
>>>> Clifton Park, NY 12065-8662<br>
>>>> Phone:<a href="tel:518-881-4909" target="_blank"> 518-881-4909</a><br>
>>>><br>
>>>> On Fri, Sep 2, 2016 at 2:17 AM, Oliver Cairncross <<a href="mailto:op.cairncross@gmail.com" target="_blank">op.cairncross@gmail.com</a>> wrote:<br>
</p>
<blockquote><p dir="ltr">><br>
</p>
</blockquote>
<p dir="ltr">> >>>>></p>
<p dir="ltr">>>>>> What I'm doing is pretty straight forward. I haven't changed the vtk code at all.<br>
>>>>><br>
>>>>> vtkDirectory * sourceDir = vtkDirectory::New();<br>
>>>>> sourceDir->Open(sourceString.<wbr>c_str());<br>
>>>>> vtkSortFileNames * sourceFiles = vtkSortFileNames::New();<br>
>>>>> sourceFiles-><wbr>SkipDirectoriesOn();<br>
>>>>> sourceFiles->NumericSortOff();<br>
>>>>> sourceFiles-><wbr>SetInputFileNames(sourceDir-><wbr>GetFiles());<br>
>>>>> sourceFiles->Update();<br>
>>>>><br>
>>>>> for (int i = 0; i < targetArray-><wbr>GetNumberOfValues(); i++)<br>
>>>>> {<br>
>>>>>      string s1 = sourceFiles->GetFileNames()-><wbr>GetValue(i); // crash!<br>
>>>>> }<br>
>>>>><br>
>>>>> Thanks<br>
>>>>> Ollie<br>
>>>>><br>
>>>>> On 2 September 2016 at 13:45, David E DeMarle <<a href="mailto:dave.demarle@kitware.com" target="_blank">dave.demarle@kitware.com</a>> wrote:<br>
</p>
<blockquote><p dir="ltr">><br>
</p>
</blockquote>
<p dir="ltr">> >>>>>></p>
<p dir="ltr">>>>>>> Whatever your sourceFiles->GetFileNames object has uninitialized pointers.<br>
>>>>>><br>
>>>>>> Debug mode initializes all values to 0, release does not (in order to save run time), but this leaves you with some pointer pointing to nonsense.<br>
>>>>>><br>
>>>>>><br>
>>>>>><br>
>>>>>> David E DeMarle<br>
>>>>>> Kitware, Inc.<br>
>>>>>> R&D Engineer<br>
>>>>>> 21 Corporate Drive<br>
>>>>>> Clifton Park, NY 12065-8662<br>
>>>>>> Phone:<a href="tel:518-881-4909" target="_blank"> 518-881-4909</a><br>
>>>>>><br>
>>>>>> On Thu, Sep 1, 2016 at 11:32 PM, Oliver Cairncross <<a href="mailto:op.cairncross@gmail.com" target="_blank">op.cairncross@gmail.com</a>> wrote:<br>
</p>
<blockquote><p dir="ltr">><br>
</p>
</blockquote>
<p dir="ltr">> >>>>>>></p>
<p dir="ltr">>>>>>>> Hi,<br>
>>>>>>><br>
>>>>>>> vtk 7, msvc 14, windows 10<br>
>>>>>>><br>
>>>>>>> I've had this problem before and thought it was something bad in my tool chain. But I've rebuild everything from scratch and it's still a problem.<br>
>>>>>>><br>
>>>>>>> If I do something simple like<br>
>>>>>>><br>
>>>>>>> string s1 = sourceFiles->GetFileNames()-><wbr>GetValue(i);<br>
>>>>>>><br>
>>>>>>> it runs fine in debug mode. When I compile in RelwithDebInfo it crashes with a bad allocation.<br>
>>>>>>> When I have a look at the object the there is garbage where the string is supposed to be. As if it hasn't been initialised. I am calling an  sourceFiles->Update() beforehand.<br>
>>>>>>><br>
>>>>>>> Interestingly if I do<br>
>>>>>>><br>
>>>>>>> cout << sourceFiles->GetFileNames()-><wbr>GetValue(i);<br>
>>>>>>> string s1 = sourceFiles->GetFileNames()-><wbr>GetValue(i);<br>
>>>>>>><br>
>>>>>>> it will print to console and then crash on the next line.<br>
>>>>>>><br>
>>>>>>> Is anyone else having this problem?<br>
>>>>>>><br>
>>>>>>> Cheers<br>
>>>>>>> ollie<br>
>>>>>>><br>
>>>>>>> ______________________________<wbr>_________________<br>
>>>>>>> Powered by<a href="http://www.kitware.com" target="_blank"> www.kitware.com</a><br>
>>>>>>><br>
>>>>>>> Visit other Kitware open-source projects at<a href="http://www.kitware.com/opensource/opensource.html" target="_blank"> http://www.kitware.com/<wbr>opensource/opensource.html</a><br>
>>>>>>><br>
>>>>>>> Please keep messages on-topic and check the VTK FAQ at:<a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank"> http://www.vtk.org/Wiki/VTK_<wbr>FAQ</a><br>
>>>>>>><br>
>>>>>>> Search the list archives at:<a href="http://markmail.org/search/?q=vtkusers" target="_blank"> http://markmail.org/search/?q=<wbr>vtkusers</a><br>
>>>>>>><br>
>>>>>>> Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/vtkusers" target="_blank">>>>>>>> http://public.kitware.com/<wbr>mailman/listinfo/vtkusers</a><br>
>>>>>>><br>
>>>>>><br>
>>>>><br>
>>>><br>
>>><br>
>>><br>
>>> ______________________________<wbr>_________________<br>
>>> Powered by<a href="http://www.kitware.com" target="_blank"> www.kitware.com</a><br>
>>><br>
>>> Visit other Kitware open-source projects at<a href="http://www.kitware.com/opensource/opensource.html" target="_blank"> http://www.kitware.com/<wbr>opensource/opensource.html</a><br>
>>><br>
>>> Please keep messages on-topic and check the VTK FAQ at:<a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank"> http://www.vtk.org/Wiki/VTK_<wbr>FAQ</a><br>
>>><br>
>>> Search the list archives at:<a href="http://markmail.org/search/?q=vtkusers" target="_blank"> http://markmail.org/search/?q=<wbr>vtkusers</a><br>
>>><br>
>>> Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/vtkusers" target="_blank">>>> http://public.kitware.com/<wbr>mailman/listinfo/vtkusers</a><br>
>>><br>
>><br>
</p>
</div></div></blockquote></div><br></div>