Neuling in C - malloc problem
-
Hallo, Ich bin relativ neu in C und hätte da ein Problem.
Also ich versuche Zahlen in C zu Sortieren.
Leider scheitere ich schon daran die Variablen überhaupt einzuscannen
Hier mal den Quelltext den ich bis jetzt geschrieben habe#include <stdio.h> #include <stdlib.h> int main (){ int anzahl; int i; printf("Hallo Wieviele eingaben willst zu vergleichen?: "); scanf("%i", anzahl); int eingabe[anzahl]; system("pause"); }
mein Bruder sagt es hätte irgendwas mit malloc() zu tun
leider verstehe ich malloc überhaupt nicht
wäre nett wenn jemand hier den das Problem lösen könnte
vollständige quelltexte sind erwünscht!
Danke Mfg
-
gerrit6.dolderer@googlema schrieb:
Hallo, Ich bin relativ neu in C und hätte da ein Problem.
Also ich versuche Zahlen in C zu Sortieren.
Leider scheitere ich schon daran die Variablen überhaupt einzuscannen
Hier mal den Quelltext den ich bis jetzt geschrieben habe#include <stdio.h> #include <stdlib.h> int main (){ int anzahl; int i; printf("Hallo Wieviele eingaben willst zu vergleichen?: "); scanf("%i", anzahl); int eingabe[anzahl]; system("pause"); }
mein Bruder sagt es hätte irgendwas mit malloc() zu tun
leider verstehe ich malloc überhaupt nicht
wäre nett wenn jemand hier den das Problem lösen könnte
vollständige quelltexte sind erwünscht!
Danke MfgHallo duuuu!
Also erstmal, vollständige Quelltexte wirst du hier wohl kaum von jemandem kriegen!
scanf("%i", &anzahl);
In dieser Zeile liegt z.B. ein Fehler, vor "anzahl" muss ein &-Zeichen. (Lies dir mal was über Zeiger, Speicherverwaltung, Adressen durch)
Aber ich versteh auch gar nicht was genau du eigentlich machen willst!
Also, wie? Du willst je nach angabe von Anzahl viele Zahlen vom benutzer erwarten, aud dann soll dir das Programm diese Zahlen von niedrig aufsteigend sortiert ausgeben, oder wie?Für ein Dynamisches Array, musst du dir Speicher reservieren.
Aber was genau verstehst du daran bzw. an Malloc nicht? Hast du dir schon was dazu durchgelesen, und etwas probiert? Kannst du gerne Posten.
Und wo Soll der Benutzer die Zahlen eingeben?Gruß!
-
Hallo,
#include <stdio.h> #include <stdlib.h> int main (){ int anzahl; int i; int *eingabe; printf("Hallo, wieviele Eingaben willst zu vergleichen?: "); scanf("%i", &anzahl); eingabe = malloc( anzahl * sizeof( int ) ); /* hier einlesen, sortieren und ausgeben das mußt Du aber selbst machen */ /* jetzt sind wir fertig 8-) */ free( eingabe ); system("pause"); }
mfg Martin
-
int eingabe[anzahl];
ist auch eine Möglichkeit sich Speicher zu reservieren, wenn auch nicht die Beste. Vielleicht arbeitest du erst mal so weiter, ganz ohne malloc(), wenn dich das verwirrt.
Der eigentliche Fehler war ja, wie einige schon sagten, dass du den &-Operator bei scanf nicht verwendet hast.L. G.
Steffo
-
Danke!
der threat kann geschlossen werden!
-
danke
der threat kann geschlossen werden!