Zeiger auf neuen Datentyp
-
Wenn ich versuche in einer Funktion auf einen leeren von mir erstellen Datentyp zuzugreifen, kommen 'lustige' Fehlermeldungen -.-
Sieht jemand den Fehler?
struct karton{ char array[10][20]; }; extern karton ab_karton; void postmann(int a, karton *z) { z.array[0][0] = 'H'; }Links von ".c_array" muss sich eine Klasse/Struktur/Union befinden. Typ ist 'karton *'*grübel*
-
Du übergibst einen Pointer, aber versucht per Indexoperator zuzugreifen.
z->array[0][0] = 'H';Sollte gehen.
Oder du nutzt Referenzen

-
oh, *gleich merken*
danke schön.
-
oh, aber wie rufe ich dann die Funktion in der main auf?
postmann( a, *z)
-
struct karton{ char array[10][20]; }; extern karton ab_karton; void postmann(int a, karton *z) { z.array[0][0] = 'H'; } int main() { karton k; postmann(1, &k); //Oder per Heap: karton *j = new karton; postmann(42, j); delete j; }
-
EDIT:: Fehler gefunden -.- uiui das ist der Mangel an Schlaf ^^
-
struct package { char data[10][20]; }; void package_set_char(const char c, std::size_t x, std::size_t y, package& dest) { dest.data[x][x] = c; } int main() { package item; package_set_char('H', 0, 0, item); package* ptr_item = new package; package_set_char('a', 0, 1, *ptr_item); delete ptr_item; }... wobei sich da natürlich eher eine Memberfunktion anbieten würde ... aber es geht ja um das Prinzip
