Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

c-Funktion Variable ändern
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Informatik-Forum -> c-Funktion Variable ändern
 
Autor Nachricht
Precision
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 15.12.2005
Beiträge: 519

BeitragVerfasst am: 23 Mai 2009 - 19:11:07    Titel: c-Funktion Variable ändern

Moin Forum,

kann mir einer von euch sagen, was ich bei folgender Funktion falsch gemacht habe?

Ziel ist es, die Variable VAR mit einem Zahlenwert zu belegen und in anderen Funktionen nutzbar zu machen, sprich ich möchte, dass die Variable VAR durch die Funktion VARANDERN mit einem Zahlenwert belegt wird, welcher sich aus der Funktion FUNKTION(3) ergibt.


uint16_t VARANDERN(void)
{
uint16_t VAR;

VAR = FUNKTION(3);

return VAR;
}
Annihilator
Valued Contributor
Benutzer-Profile anzeigen
Valued Contributor


Anmeldungsdatum: 18.05.2007
Beiträge: 6394
Wohnort: (hier nicht mehr aktiv)

BeitragVerfasst am: 23 Mai 2009 - 20:01:31    Titel:

Was du hier falsch machst? Fragen wir mal so: Was machst du hier überhaupt? Schreib mal wie du dir in etwa das restliche Programm gedacht hast (also speziell die main-Funktion)!
just_phil
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 23.08.2008
Beiträge: 1006

BeitragVerfasst am: 23 Mai 2009 - 20:28:46    Titel:

ich verstehe es auch nicht so richtig, aber hier mal 'ne version, die funktioniert (sinnvoll ist das ganze natürlich nicht):

Code:

#include <stdio.h>

int funktion(int a) {
   printf("funktion mit parameter %d aufgerufen!\n", a);
   return a*2;
}

int veraendern(void) {
   printf("veraendern aufgerufen!\n");
   int b;
   b = funktion(3);
   return b;
}


int main(void) {
   int c = 0;
   c = veraendern();
   printf("c nach den funktionsaufrufen: %d\n", c);
   return 0;
}
Smutje
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 18.07.2008
Beiträge: 3004
Wohnort: Gießen

BeitragVerfasst am: 23 Mai 2009 - 21:55:30    Titel: Re: c-Funktion Variable ändern

Precision hat folgendes geschrieben:
kann mir einer von euch sagen, was ich bei folgender Funktion falsch gemacht habe?


Du hast nicht verstanden, das lokale Variablen, die innerhalb von Blöcken (also auch Funktionen) angelegt, auf dem Stack gespeichert werden, und damit nach Verlassen des Blockes nicht mehr zugänglich, da der Speicherinhalt nicht mehr gesichert ist, sind. Es gibt in C drei Arten, um Werte aus Funktionen herauszutransportieren: Entweder, in dem du sie als Rückgabewert der Funktion zurücklieferst, in dem du eine Variable per Referenz an eine Funktion übergibst, die dann auf die Referenz, und damit den Speicher der Variable, zugreifen kann, oder in dem du innerhalb der Funktion per Speicherallokation eine Variable auf dem Heap anlegst und dann einen Zeiger auf diese Variable zurückgibst.
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Informatik-Forum -> c-Funktion Variable ändern
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum