Zum Inhalt springen

pointer -> arrays übergeben


Empfohlene Beiträge

Geschrieben

hoi leutz,

folgendes problem ich hab nen array da möchte ich per pointer an eine funktion übergeben und in dieser das array leeren/ausgeben... doch leider stützt das programm immer ab! leider komm ich net drauf woran es liegen könnte...


#include <stdio.h>


#define X 3	

#define Y 3


int init( int* ptr_grid[X][Y] )

{

	int i, j;


	for ( i=1; i<=X; i++ )

	{

		for ( j=1; j<=Y; j++ )

		{

			ptr_grid[i][j] = '\0'; // Die einzelen Felder mit \0 füllen

		}

	}


	return 1;

}


int show_grid( int *ptr_grid[X][Y] )

{

	int i, j;


	for ( i=1; i<=X; i++ )

	{

		for ( j=1; j<=Y; j++ )

		{

			printf("%c ", ptr_grid[i][j] ); // die einzelen Arrayfelder ausgeben

		}

		printf("\n");

	}


	return 1;

}


int main ( void )

{

                // Variable initialisieren

	char grid[X][Y];


	// aufruf der einzelnen funktionen

                init( grid );

	show_grid( grid );


	// Programm verlassen

                return 1;


}

Geschrieben

das hilft aber auch nicht wirklich weiter...


#include <stdio.h>


#define X 3	

#define Y 3


int init( int *ptr_grid )

{

	int i, j;


	for ( i=0; i<=X-1; i++ )

	{

		for ( j=0; j<=Y-1; j++ )

		{

			ptr_grid[i][j] = '\0';

		}

	}


	return 1;

}


int show_grid( int *ptr_grid )

{

	int i, j;


	for ( i=0; i<=X-1; i++ )

	{

		for ( j=0; j<=Y-1; j++ )

		{

			printf("%c ", ptr_grid[i][j] );

		}

		printf("\n");

	}


	return 1;

}


int main ( void )

{

	char grid[X][Y];

	init( grid );

	show_grid( grid );

	return 1;


}

denn ich erhalte folgende fehlermeldungen

main.c(14) : error C2109: Index benoetigt ein Feld oder einen Zeigertyp

main.c(14) : error C2106: '=' : Linker Operand muss ein L-Wert sein

main.c(29) : error C2109: Index benoetigt ein Feld oder einen Zeigertyp

main.c(40) : warning C4047: 'function' : Anzahl der Dereferenzierungen bei 'int *' und 'char [3][3]' unterschiedlich

main.c(40) : warning C4024: 'init' : Unterschiedliche Typen fuer formalen und uebergebenen Parameter 1

main.c(41) : warning C4047: 'function' : Anzahl der Dereferenzierungen bei 'int *' und 'char [3][3]' unterschiedlich

main.c(41) : warning C4024: 'show_grid' : Unterschiedliche Typen fuer formalen und uebergebenen Parameter 1

wenn ich bei der übergabe char/int *ptr_grid[X][Y] angebe wir mein programm zwar kompiliert stürzt aber mit der folgenden msg ab:

Die Anweisung in "0x00000000" verweist auf Speicher in "0x00000000". Der Vorgang "read" konnte nicht auf dem Speicher durchgeführt werden.

Geschrieben

Vielleicht sagst Du uns besser zuerst, was Du überhaupt vorhast. Willst Du jetzt einen zweidimensionalen Array von einzelnen Zeichen (char) oder von Zeigern auf int (int*)? Oder womöglich einen zweidimensionalen Array von Strings (char*)?

Geschrieben

bei dem programm soll es sich um ein simples tic tac toe handeln... in main wird grid[X][Y] deklariert. diess 2 dimensionale array soll dann an diveres funktionen zum überprüfen, füllen (mit X oder O) usw. übergeben werden. in diesem fall soll das array in init() geleert werden und bei show_grid() soll es ausgegeben werden... mehr nicht, vorerst.

Geschrieben
#include <stdio.h>

#define X 3
#define Y 3

int init( char ptr_grid[X][Y] )
{
int i, j;

for ( i=0; i<=X-1; i++ )
{
for ( j=0; j<=Y-1; j++ )
{
ptr_grid[i][j] = ' '; // Leerzeichen für leeres Feld
}
}

return 1;
}

int show_grid( char ptr_grid[X][Y] )
{
int i, j;

for ( i=0; i<=X-1; i++ )
{
for ( j=0; j<=Y-1; j++ )
{
printf("%c ", ptr_grid[i][j] );
}
printf("\n");
}

return 1;
}

int main ( void )
{
char grid[X][Y];
init( grid );
show_grid( grid );
return 1;
}[/CODE]

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...