Hi,
zäh bist Du ja, das muß man Dir schon zugestehen. Ich kenne viele die schon viel früher die Brocken hingeworfen hätten :-)
Zumindest versuche ich es gerade mit einem neuen, einfacheren Progrämmchen :) Das Eine mit den Threads funktioniert zwar bisher, aber ich habe mich vor lauter Funktionen und Dingen, die ich bereits eingabaut habe und noch einbauen wollte, nicht mehr herausgesehen. Beim Aktuellen scheint es mir, als ob ich endlich mal mein Ziel erreiche.
Dann poste doch mal die Problemstellung, denn so "ausse Lamäng" kann man da auch nicht viel zu sagen.
Also ursprünglich funktionierte das Übergeben eines mehrdimensionalen Arrays nicht so, wie ich mir das vorstellte. Jetzt habe ich es so gelöst:
Übergabe:
funktion(&array[3][4]); //Vom Typ SDL_Rect
Prototyp:
funktion(SDL_Rect *feld);
und mit (*feld).x (*feld).y usw kann ich auf die Variablen des Typs SDL_Rect auf der Position [3][4] zugreifen.
Aber eigentlich stört mich daran, dass ich in der Funktion mit Zeigern arbeiten muss, die die Variable außerhalb der Funktion beeinflussen könnte.
Wenn ich das komplette Array übergebe, funktioniert es ja auch so:
Übergabe:
funktion(array);
Prototyp:
funktion(SDL_Rect feld[5][8]); // array ist [5][8] groß.
Wobei ich jetzt mit feld[2][7] usw bequem auf die Elemente zugreifen kann, ohne die Variable außerhalb der Funktion zu beeinflussen.
Wenn "array" ein Zeiger auf das allererste Element ist, wie sieht dann ein zu übergebender Zeiger auf beispielsweise [2][3] aus, also dass die Funktion nur diesen einen Wert bekommt?
Ich frage das eigentlich nur aus Interesse.
P.S Eines wollte ich noch wissen.
Wenn ich ein Array, dass [4] lang ist an eine Funktion übergebe, die nur ein Array von [2] entgegen nimmt, kann es dann passieren, dass die letzten beiden Elemente von array[4] außerhalb der Funktion verloren gehen, oder macht es nichts, da ohnehin nur eine Kopie des Array übergeben wird?
Ich brauchte nämlich nur die ersten beiden Elemente und bemerkte, dass es offensichtlich keine Probleme macht, wenn ich nur das verkürzte Array übergebe, aber es könnte natürlich auch nur Zufall gewesen sein?
Markus.
Wenn ich ein toller Programmierer währe, könnte ich vielleicht sogar Packete nach einem gewissen Standart kompelieren...