visual Array типа vtk отказывается хранить содержимое в переполнении стека

Я использую C ++ для использования vtk, и когда я жестко кодирую вершины, моя программа работает нормально.
Однако, когда я пытаюсь реализовать цикл for (для удержания x-многих вершин), вся программа падает.
Вот код, с которым я работаю:

vtkIdType totalVertex[9];

for(int i = 0; i < sizeof(totalVertex); i++){
totalVertex[i] = g->AddVertex();
}
// Hardcode example for syntax:
// vtkIdType v1 = g->AddVertex();

Это позволило бы получить 9 вершин, а затем я мог бы управлять ими с помощью таких команд, как

g->AddEdge (totalVertex[0], totalVertex[1]);

Но мой код никогда не добирается до места, где добавляются ребра, а вместо этого решает разорвать цикл.

Я новичок в C ++, поэтому любые идеи были бы хорошими.

0

Решение

Это может не решить вашу проблему, но есть проблема с

for(int i = 0; i < sizeof(totalVertex); i++)

и это может быть связано с вашей проблемой.

sizeof в C ++ дает размер того, что вы предоставляете в байтах, а не длину массива. Если не vtkIdType один байт, у вас будут ошибки. «Старый способ C» сделать это правильно будет

for(int i = 0; i < sizeof(totalVertex) / sizeof(totalVertex[0]); i++)

Более чистый и современный C ++ способ

#include <array>

std::array<vtkIdType, 9> totalVertex;

for(int i = 0; i < totalVertex.size(); i++){
totalVertex[i] = g->AddVertex();
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector