Dynamisches zweidimensionales Array

Kannst du mir auch die erste Frage von oben noch beantworten?
was hat das mit Sockets zu tun?
Ich wollte keine Threads "spamen".

Was davon trifft zu:
a) Jedes der Arrays hat gleich viel Elemente und die Anzahl ist immer gleich.
zB. ein int[10], noch ein int[10] usw...

b) Wie a, die 10 kann aber beim nächsten Programmdurchlauf anderes sein.
16-16-16...

c) Jedes der Arrays hat unterschiedlich viel Elemente.
12-47-9...
Allgemein gilt:
- es sollen x Arrays erzeugt werden
- jeder der x Arrays hat die selbe Anzahl an Elementen
- die Benennung der Arrays sollte linear sein also z.B. name_1[10]; name_2[10]; name_3[10]; ... usw., damit ich später unkompliziert darauf zugreifen kann.
Ich möchte die Anzahl der Arrays nicht während des Programm läuft verändern.
Nur wenn ich das Programm eben neu compile würde ich gerne einfach zwei #defines verändern - eines für die Anzahl der Arrays und eines für die Elemnte - und meine for-Schleife allokiert mir dann die Arrays.


Ich weiß warum ich früher nur php programmiert habe - da wäre das ganz simpel :p!
War genau auf so etwas bezogen:
PHP:
for($i = 0; $i < 10; ++$i) {
  $var_name = 'name_' . $i;
  ${$var_name} = 0;
}
Genau das möchte ich haben ... nur eben in c ... geht ja aber scheinbar nicht:
das mit den Namen geht nicht so wirklich,
da Variablennamen im kompilierten Programm nicht existieren.

Wenn du die Arrayanzahl verändern möchtest: Liste etc... aus Arrays.
Jeder Zugreifer hat seinen eigenen Iterator
und jede Spalte hat einen Mutex (struct aus Array und Mutex)
- sheel deine Alternative habe ich so leider nicht ganz verstanden.

Mit freundlichen Grüßen
Genius
 
Zuletzt bearbeitet:
Ah, hab da was falsch verstanden.
Wenn die Arrayanzahl/Arraygröße nur über #defines geändert werden soll,
ist die Liste überflüssig.

Du machst zuerst so ein struct:
C++:
#define ARRAY_GROESSE 10

struct mutex_und_array //Name natürlich änderbar
{
    int array[ARRAY_GROESSE];
    Mutex m; //oder wie der eben ausschaut
};

Jetzt von dem ein Array
C++:
#define ARRAY_ANZAHL 16

struct mutex_und_array komplett[ARRAY_ANZAHL];
Dann hätte man 16 Arrays mit je 10 ints, und zu jedem Array einen eigenen Mutex.
Zugriff ca. so:
C++:
komplett[2].array[4] = 5678;
und komplett[2].m wäre der Mutex für dieses Array.

Alle Variablen/define-Namen natürlich anpassbar.
 

Neue Beiträge

Zurück