Angenommen, mein Programm muss 2 Eingänge erhalten: die erste entspricht der Größe des Arrays, und der zweite Eingang entspricht den Elementen des Arrays, durch ein einzelnes Leerzeichen getrennt.Füllen große Array in C mit scanf
dh (Eingang):
so habe ich eine Reihe von Größe bevöl n = 4 mit 1,2,3,4, wie ihre Elemente. Nun, ich die Art und Weise in der Regel tun, wäre so etwas wie:
int *vector=malloc(n*sizeof(int));
for(int i=0; i<n; i++){
scanf("%d", &vector[i]);
}
, die für kleine Werte von n (wie 1000) gut funktioniert. Aber wenn ich es für, sagen wir, n = 1 Million oder sogar etwas wie 100.000 tue, funktioniert das überhaupt nicht. Es bleibt in einer Endlosschleife stecken. Gibt es also eine andere Möglichkeit, das Array mit scanf (oder fgets oder einer anderen Funktion) zu füllen?
Ihre i eine ganze Zahl ist, die einen Maximalwert von 32767 hat –
"* das geht gar nicht *" ist keine Problemaussage. Fix das – Amit
Mit "in einer Endlosschleife stecken" meinst du, dass die for-Schleife über n hinaus geht? d. h. wo ist es in einer Schleife stecken und können Sie erweitern, woher wissen Sie? – noelicus