On Fri, Dec 22, 2000 at 11:46:52PM +0100, Matthias Petermann wrote:
Hallo LUG,
ich habe ein kleines Problem in einem C Programm, an dem ich schon fast verzweifle. Auf die Gefahr hin, hier damit offtopic zu sein möchte ich es trotzdem einmal kurz schildern:
Also so wahnsinnig OT ist das ja eigentlich nicht.
<Beispiel> #include <stdlib.h> #include <stdio.h>
int fill(int *feld); // Prototyp
void main() { int feld[20][6]; fill(feld);
Du könntest hier einsetzen fill ((int*) feld); allerings ist das ein ziemlicher dirty hack.
exit(0); }
int fill(int *feld) { int a,b;
for(b=0;b<20;b++) { for(a=0;a<6;a++) feld[b][a]=10; }
Zusätzlich müßtest du das noch als eindimensionalen Array hier benutzen, also feld[b*20+a]=10;
return(1); }
</Beispiel>
Ganz kurze Erklärung: Ich möchte ein zweidimensionales Feld von Integern in der Main-Funktion statisch definieren. Auf dieses Feld möchte ich aber auch mit anderen, aus main() aufgerufenen Funktionen zugreifen können und dachte, dass mit dem Übergeben der Adresse des Feldes tun zu können. Doch irgendwie scheint das bei Feldern mit Dimensionen >1 nicht zu klappen? In meinem C/C++ Lernbuch habe ich dazu nichts gefunden und wäre sehr dank- bar, wenn mir jemand einen kleinen Tipp geben könnte.
Ansonsten könnte man es ja mal mit "vector<vector<int> >" versuchen. Mehr mach ich heute morgen nicht :).
Ein frohes Weihnachtsfest wünscht Euch allen
Irgendwie endet jede Mail, die ich derzeit bekomme, mit einem derartigen Satz :).
Matthias
Ulf