Got kleines Problem hier.mögliche Probleme nach der Größenanpassung dynamische Array
I erstellt dynamisches Array:
m_elements = new struct element*[m_number_of_elements];
for(int i = 0; i < m_number_of_elements; i++)
{
m_elements[i] = new struct element[m_element_size];
}
dann habe ich versucht, bestehende Array, um die Größe:
m_elements[m_number_of_elements] = create_more_elements();
m_number_of_elements++;
create_more_elements() ist eine Funktion:
struct index* create_more_elements()
{
struct element* tmp = new struct element[m_number_of_elements]
return tmp;
}
Im allgemeinen ist dieses Stück der Code funktioniert, aber manchmal bekomme ich an verschiedenen Stellen segfaults. Sind segfaults mit der Größenanpassung verbunden? Irgendwelche Gedanken?
Ich stimme dir zu, aber ich habe etwa 1000 Zeilen Code und ich hoffe, nicht alles zu ändern))). – qutron
Dies löst die Array-Behandlung, aber nicht die Speicherbehandlung der tatsächlichen Strukturen. Da das OP anscheinend von C kommt, ist es ein guter Rat, zu versuchen und aufzuhören, alles mit "neu" zuzuteilen, nur weil du es kannst. Die meiste Zeit ist 'vector' eine bessere Idee als 'vector '. –
Mephane
@qutron: Es ist besser, jetzt bei 1000 Zeilen zu ändern, als bei 10000 Zeilen herauszufinden, dass Sie von Anfang an einen Vektor hätten verwenden sollen. ;) – Mephane