C Feld mit unbekannter Anzahl von Werten in einer Funktion eingeben

Cinematic

Lt. Commander
Registriert
Dez. 2010
Beiträge
1.319
Wenn ich das Programm starten will, kommt ein Fehler "feld is being used without being initialized".
Aber ich habs doch initialisiert... ?!

http://pastebin.com/9hM4g5hC

Habe ganz viele ////////// an die relevanten Stellen gemacht, damit ihr nicht lange suchen müsst.
 
Zuletzt bearbeitet:
Code:
int* feld;
Dort wurde nichts initialisiert - nur deklariert.

Versuch's mal so:
Code:
int* feld = NULL;
 
Okay Danke ! Damit wäre der Fehler wegen des Initialisierens schonmal behoben, aber jetzt kommt ein anderer:

"P10A2.exe": "C:\Users\Timo-THINK\Desktop\Uni\Programmierung 1\Projekte\P10A2\Debug\P10A2.exe" geladen, Symbole wurden geladen.
"P10A2.exe": "C:\Windows\SysWOW64\ntdll.dll" geladen, Cannot find or open the PDB file
"P10A2.exe": "C:\Windows\SysWOW64\kernel32.dll" geladen, Cannot find or open the PDB file
"P10A2.exe": "C:\Windows\SysWOW64\KernelBase.dll" geladen, Cannot find or open the PDB file
"P10A2.exe": "C:\Program Files\AVAST Software\Avast\snxhk.dll" geladen, Cannot find or open the PDB file
"P10A2.exe": "C:\Windows\SysWOW64\msvcr100d.dll" geladen, Symbole wurden geladen.
Eine Ausnahme (erste Chance) bei 0x00f01573 in P10A2.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00000004.
Unbehandelte Ausnahme bei 0x00f01573 in P10A2.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00000004.

:(
 
Wo kommt der Fehler? Also, welche Zeile?

Meine C-Kenntnisse sind nicht die besten, aber ich glaube, feld in main wird gar nicht verändert.
Du müsstest einen int** an eingabe übergeben, damit es funktioniert.
 
Code:
void eingabe(int *feld, int *anzahl)
zu
Code:
void eingabe(int *&feld, int *anzahl)
ändern.
 
//hier stand stuss ...

sorry
 
IceMatrix schrieb:
Code:
void eingabe(int *feld, int *anzahl)
zu
Code:
void eingabe(int *&feld, int *anzahl)
ändern.

Wenn man bei C den Namen eines Arrays ohne die [ ] Klammern schreibt, wird das schon als Adresse interpretiert. Mit dem & klappts auf jeden Fall nicht.

Wurstinator schrieb:
Wo kommt der Fehler? Also, welche Zeile?

Meine C-Kenntnisse sind nicht die besten, aber ich glaube, feld in main wird gar nicht verändert.
Du müsstest einen int** an eingabe übergeben, damit es funktioniert.

Keine Ahnung welche Zeile, da kommt halt nur das was ich auch hier reinkopiert hatte.

Hmm, das mit dem ** versuch ich mal.
 
Wenn man bei C den Namen eines Arrays ohne die [ ] Klammern schreibt, wird das schon als Adresse interpretiert. Mit dem & klappts auf jeden Fall nicht.
Vermutlich kommt IceMatrix wie ich von C++ und wusste nicht, dass es bei C keine Referenzen (&-Zeichen) gibt :)

Keine Ahnung welche Zeile, da kommt halt nur das was ich auch hier reinkopiert hatte.
Ich meinte, beim ursprünglichen Fehler.
 
Zurück
Oben