Forum: PC-Programmierung Structures mit void Funktion übergeben


von Hans Körber (Gast)


Angehängte Dateien:

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.

von Irgwer (Gast)


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.

von Karl H. (kbuchegg)


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.

von The Daz (Gast)


Lesenswert?

Probier doch

  film Read(film a1)

oder besser in C++

  void Read(film &a1)

von Hans Körber (Gast)


Lesenswert?

Danke, es geht, danke vielmals

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.