Das liegt daran, dass Arrays und Zeiger eben nicht ganz dasselbe sind.
1
staticconstint**_fontdesc[]={
2
(constint**)microsoftSansSerif_8ptDescriptors,
3
(constint**)microsoftSansSerif_10ptDescriptors
4
};
Das würde funktionieren. Kommt drauf an, was du dann noch vorhast mit
_fontdesc. Denn der Zugriff darauf ist jetzt nicht mehr so cool.
Wenn es dir aber reichen würde immer nur einen Zeiger auf das erste
Element im Array zu speichern, dann ist das viel leichter gemacht und
sieht auch nicht so seltsam aus.
1
staticconstint_fontdesc[]={
2
µsoftSansSerif_8ptDescriptors[0][0],
3
µsoftSansSerif_10ptDescriptors[0][0]
4
};
Ich muss auch zugeben, dass der Zusammenhang zwischen Arrays und Zeigern
sehr verwirrend ist und ich daher für nichts eine Garantie übernehme.
Wenn es noch jemand besser weiß, dann bin ich daran auch sehr
interessiert.
nfet schrieb:> Das liegt daran, dass Arrays und Zeiger eben nicht ganz dasselbe sind.> static const int** _fontdesc[] = {> (const int**) microsoftSansSerif_8ptDescriptors,> (const int**) microsoftSansSerif_10ptDescriptors> };> Das würde funktionieren. Kommt drauf an, was du dann noch vorhast mit> _fontdesc. Denn der Zugriff darauf ist jetzt nicht mehr so cool
Diese Lösung hat mich schon mal ohne Fehlermeldung weiter gebracht.
Allerdings bekomme ich beim außlesen ganz andere Werte als enthalten
sind.
Mein microsoftSansSerif_8ptDescriptors sieht wie folgend aus:
Alex R. schrieb:> Allerdings bekomme ich beim außlesen ganz andere Werte als enthalten> sind.
Das liegt am Speicherlayout von mehdimensionalen Arrays und dem falschen
cast "(const int**) microsoftSansSerif_8ptDescriptors,"
2d Arrays sind im Speicher wie 1d Arrays abgelegt. Der cast kann daraus
nicht magisch Pointer auf 1d arrays machen, weil diese Pointer nirgens
gespeichert sind.
Folgende Möglichkeiten:
Array von Pointern auf Mehrdimensionale Arrays: (nearest match)
Daniel A. schrieb:> Möglichkeit 3, stattdessen structs verwenden: (best option)
Was darüber hinaus auch noch öfter weiter hilft, das sind ein paar
typedefs, mit denen man sich 'Abkürzungen' schafft. Man sieht sie für
Arrays eher selten, aber sie können auch da recht nützlich sein, um die
Syntax für darauf aufbauende weitere Datentypen zu entschärfen.