Super schwere frage (*array, funktion)
-
Hallo als erstes,
ich habe in der mein als ertes ein zieger auf ein array deklariert und zwar so
int *Array;
danach den zeiger auf NULL gestelt und zwar so
*Array=NULL; //DER COMPILER SAGT NULL NICHT IDETIFIZIERT
Warum???
Danach habe ich *Array an der funktion übergegen wie hier z.b.
foo(array, size)
Nun in der funktion drinen:
int foo(int array, size)
{
for(int i=0;i<size;i++)
{
array[i]=3;//Fehler
printf("%d", array[i]);//Fehler
}wiso das ales kann mir einer ein programm schiken das so ein array in einer funktion schikt????bitte
-
Master User schrieb:
Hallo als erstes,
ich habe in der mein als ertes ein zieger auf ein array deklariert und zwar so
int *Array;
danach den zeiger auf NULL gestelt und zwar so
*Array=NULL; //DER COMPILER SAGT NULL NICHT IDETIFIZIERT
Warum???
Damit wolltest du wahrscheinlich den Zeiger auf NULL setzten, und nicht den
Inhalt des Zeigers - was auch gar nicht ginge, da noch gar keine Speicher
hinter Array liegt. Richtig: Array = NULL;Master User schrieb:
Danach habe ich *Array an der funktion übergegen wie hier z.b.
foo(array, size)
Nun in der funktion drinen:
int foo(int array, size)
{
for(int i=0;i<size;i++)
{
array[i]=3;//Fehler
printf("%d", array[i]);//Fehler
}wiso das ales kann mir einer ein programm schiken das so ein array in einer funktion schikt????bitte
Der Prototyp für deine Funktion ist falsch. Muss heißen:
int foo(int* array, int size);
Lies dir lieber noch mal in Ruhe durch, was Zeiger sind und was sie bedeuten.
Edit: Und nie vergessen, genug Speicher zu reservieren und den dann auch wieder
freizugeben