C Array funktionsadeklaration...
-
Hi,
ich muß C#.NET Code nach C portieren. Hab den Code fast wie C geschrieben.
Ein Array lege ich in C so an:
int group[10, 10];
Erstelle ich die Funktionsdeklaration so:
int checkalldistances(float , float , int , float[,] ,float , float , float );
und Funktionsdefinition:
int checkalldistances(float x, float y, int index, float[,] cluster,float x2, float y2, float distance)
Die Funktion soll algemein gelten. Also für verschiedene array Größen. So wie ich es gemacht habe ist es bestimmt falsch, aber wie geht es? Gerne auch links für Tutorials geben, die mir hier weiterhelfen.
Danke,
Patrick
-
In C gibt es keine mehrdimensionalen Arrays ala
int group[10,10];
, sondern nur verschachtelte Arraysint group[10][10];
. Allerdings mußt du bei der Verwendung die "inneren" Dimensionen bereits zur Compilezeit fest vorgeben.PS: Von C# nach C ist es aber ein großer Rückschritt. Bist du sicher, daß du nicht auch C++ verwenden könntest?
-
Hi,
leider nu C. Habe extra nur normale Arrtays verwendet. Keine speziellen Sachen. Muß ich in der Definition z.B. statt float[,] cluster, cluster [10000][5] verwenden? Geht das nicht anders? Die Funktion soll einfach ein multidimensionales array bekommen und je nach Größe alles ausrechenen. Das Maximum ist bei mir sehr hoch und wäre schlecht für algemeine verwendung.
Eigentlich habe ich nur ein paar Funktionen erstellt. Bei dem Aufruf der ersten Funktion soll die arraygröße übergeben werden und dort lege ich dann alles fest an. Die Funktionsaufrufe sollen aber algemein gültig sein. Geht das nicht?
O je,
Patrick
-
Mit Arrays geht das nicht, die sind vergleichsweise statisch festgelegt. Aber du könntest Doppelzeiger verwenden und per malloc() genug Speicher reservieren (und denk immer daran, dir zu merken, wieviel Speicher du reserviert hast - C kann das nicht (portabel) aus dem Zeiger ablesen).