Moin John F.,
John F. hat geschrieben:Zitat:
Übung: Schreibe eine Funktion, die zwei Summanden erhält und die Adresse, an der sie die Summe hinschreiben soll:
Code: Alles auswählen
#include <stdio.h>
#include <stdlib.h>
// Deine add-Funktion
int main( void )
{
int sum = 4711;
add( 4, 5, &sum );
print( "Die Summe betraegt: %d\n", sum );
return EXIT_SUCCESS;
}
Wie soll denn die Lösung dazu aussehen? Soweit ich weis ist es nicht möglich einer Variable oder einem Pointer den Speicherort zuzuweisen (ggf. mit Inline Assembler?).
Dafür sind Pointer-Variablen doch da.
John F. hat geschrieben:Wenn das so einfach möglich wäre, würde ich mir doch den Arbeitsspeicher zerschießen, da ich nicht weiß was auf der Adresse liegt bzw. ob diese schon genutzt wird!
Das ist richtig, aber wenn Du weißt, was auf der Adresse liegt und wofür Du diese Adresse nutzt, dann ist das doch okay.
John F. hat geschrieben:Alleine schon das & in der Funktion "add" in der Hauptschleife ist doch schon falsch, oder nicht?
Nein, das ist korrekt. Du hast kurz vor der Übung gelesen, dass &variable bedeutet, dass man die Adresse einer Variablen meint. Du übergibst also nicht den Inhalt der Variablen, sondern Du übergibst die Adresse, wo die Variable sum im Speicher steht.
John F. hat geschrieben:Weiterhin fehlt bei bei der Ausgabe das f bei printf.
*hüstl*... stimmt. ^^
Wurde korrigiert, danke.
John F. hat geschrieben:Bisher hatte ich keine Probleme mit Pointern, aber irgendwie verwirrt mich das Tutorial mehr und mehr...
Könnt Ihr mir bitte helfen und mich aufklären? Vielen Dank...
Dafür ist das Forum da. Wenn ich's Dir aber vorkaue, hast Du ja nichts von der Übung.
Wie könnte denn die Signatur der Funktion add aussehen, damit ein Aufruf wie
passt? Welche Datentypen müsste add() erwarten?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.