Wenn ich ein großes Array verwenden möchte, z. B. mpz_t A [100000], wurde während der Kompilierung "Segmentierungsfehler (Core Dumped)" angezeigt. Gibt es einen einfacheren Weg, dies zu lösen?
programming-paradigms
user12290
quelle
quelle
Antworten:
Der Kommentar von tpg2114 ist genau richtig. Versuchen:
Wenn der
malloc
Aufruf hier einen Fehler auslöst, ist in Ihrem System nicht genügend Speicher verfügbar.Wenn Sie ein statisches Array auf dem Stapel verwenden möchten, können Sie versuchen, die Stapelbegrenzungsgröße unter Linux mit dem
ulimit
Befehl zu erhöhen .quelle
free(A)
Beispiel!Sie können auch die Verwendung
mpz_class
in C ++ ( Ref .) Statt in Betracht ziehenmpz_t
. Es kann eine Arithmetik mit beliebiger Genauigkeit einfach machen.Hier ist ein zufälliges Beispiel:
Zusammengestellt mit zB:
quelle