000
16.06.2005, 11:19 Uhr
netdisaster
|
Hallo zusammen,
ich versuche mich neuerdings im C-Programmieren. Dabei bin ich auf ein Problem gestoßen, das mir meine Lehrbücher nicht ausreichend erklären.
Die cbr-Übergabe von mehrdimensionalen Feldern als Parameter an Funktionen.
Als Testbeispiel hab ich folgenden code in C:
Code: |
#include <stdio.h>
void fmat(int *a[3][3]); // was ist zu tun
int main() { int feld[3][3]; int i, j; for (i=0; i<2; i++) { for (j=0; j<2; j++) { feld[i][j]=0; } } fmat(&feld[0][0]); for (i=0; i<2; i++) { for (j=0; j<2; j++) { printf("a[%d][%d] = %3d\n", i, j, feld[i][j]); } } }
void fmat(int *a[3][3]) { *a[1][1]=100; }
|
Das ist nichts weltbewegendes, ich weiß. Andererseits, es funktioniert nicht und ich weiß nicht, warum.
Vielleicht hättet ihr einen Rat?
Der Compiler (verwende Bloodshed - DevC++) bringt folgende Meldung: In function 'main': [Warning] passing arg 1 of 'fmat' from incompatible pointer type
Grüße, net Dieser Post wurde am 16.06.2005 um 11:24 Uhr von netdisaster editiert. |