Structures mit void Funktion übergeben

Gast #296250
Lesenswert?

Hallo, ich soll eine Video-Datenbank programmieren, habe aber Probleme
bei der Übergabe von Structures an void-Funktionen. Ich möchte es mit C
schreiben und habe ein kleines Programm geschrieben, was mein Problem
übersichtilich darstellt. Ich möchte hierbei ausdrücklich nicht mit
Zeigern vorgehen.
Wenn mir jemand sagen könnte, wie ich richtig die Werte übergebe und
was ich falsch gemacht habe, wäre ich sehr dankbar.
Angehängte Dateien:
Gast #296251
Lesenswert?

Hallo,

wenn du in 'C' programmieren willst, dann solltest du zu erst mal
deine Datei umbenennen. Die Endung '.cpp' wird für 'C++' benützt.

Nun zur Parameterübergabe. Warum willst du die Variable unbedingt nicht
'by pointer' übergeben. Eine Übergabe 'by value' bedeutet, daß beim
Aufruf eine Kopie der kompletten Struktur auf den Stack gelegt werden
müsste. Ausserdem arbeitet dann die aufgerufene Funktion tatsächlich
nur mit einer Kopie. Deine Funktion 'read' wäre damit sinnlos.

In C ohne Pointer programmieren zu wollen ist wie mit der Bohrmaschine
einen Nagel in die Wand zu hauen. Einfach das falsche Werkzeug.
#296252
Lesenswert?

> Ich möchte hierbei ausdrücklich nicht mit
> Zeigern vorgehen.

Dann hast Du schon (fast) verloren.
Eine Uebergabe per Zeiger ist nun mal die Art&Weise
wie 'call by reference'-Semantik in C implementiert wird.

Die andere Alternative solltest Du noch nicht mal
ansatzweise in Betracht ziehen: globale Variable - Schuettel.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren