mikrocontroller.net

Forum: PC-Programmierung C: Variabler Datentyp als Funktionsparameter


Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute
ich möchte mir ne Funktion schreiben, die Arrays beliebiger Dimension 
von beliebigem Datentyp mit Hilfe von rand() beschreibt. Brauche diese 
Funktion oft, und dachte ich schreib sie jetzt einmal, für immer.

Ich find allerdings nicht mehr, wie mann den Funktionsheader deklariert.
Kann mir da mal einer helfen?

danke

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das wird wohl schwer werden, woher soll denn die funktion wissen wie der 
Datentyp ist den er beschreiben soll? Eventuell geht sotewas mit 
Templates aber als normale funktion geht das nicht.

Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab da was im Hinterkopf von sog. "geschlechtslosen" Zeigern...
wie das war weis ich aber nicht mehr...

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
klar kannst du einfach void* übergeben, aber was hilft dir das? du 
willst es ja beschreiben und da ist es nun mal ein unterschied ob es ein 
char oder ein long ist.

Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und wie ist das mit arrays beliebiger dimension? wie schaut da der 
prototyp aus? oder geht das auch nicht?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
doch das geht, du musst die größe aber auch mitgeben

void fill(int*, size_t size );

Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
würde das funktionieren:

void random_array(void *array_start, int array_length int 
*array_dimension, int datatype, int mode)

array_start: anfangsaddresse des arrays
array_length: länge des allozierten dahinter allozierten Blockes
array_dimension:
z.b
array_dimension[5] = {{5},{2},{1}, {0}} bedeuted das array soll wie 
folgt ausgelegt werden: array[5][2][1]
datatype: 1 = int, 2 = long, 3=char,...
mode: für aufwärts, abwärts,...

sieht jemand darin etwas ungünsitges?

Autor: Mark Brandis (markbrandis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn es eh mit rand() zufällig beschrieben werden soll, dann ist das 
Layout (und auch die Richtung) doch eigentlich egal, will sagen: Ob es 
ein array[9] ist oder ein array[3][3], sollte dann keinen Unterschied 
mehr machen solange der Datentyp der gleiche ist.

Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
stimmt

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.