Rückgabewert von funktion

OP #789635
Hallo,

ich habe folgenden Code in C geschrieben. Und ich weiß nicht wo mein 
Fehler ist. Wieso ist meine "Ergebnis" nicht wie "erg"? eigenlicht 
sollen die die gleiche Wert haben. Oder täusche ich mich?
______________________________________________________

#include <stdio.h>
#include <stdlib.h>
typedef unsigned char int8;
typedef short int int16;
typedef int int32;

void abc(int32 *data, int32 erg);

int main(){
int32 datain[2];
datain[0] = 0x322e3000;
datain[1] = 0x12345655;
int32 *poiter;
int32 ergebnis;
abc(poiter,ergebnis)
printf("main -- ergebnis:%x\n",ergebnis);

}
void abc(int32 *data, int32 erg){
int16 *ptr1;
int16 *ptr2;
int32 y = *data;
prt1 = (int16*) &y;
ptr2 = (int16*) &erg;
ptr2[1] = ptr1[0];
ptr2[0] = ptr1[1];
printf("void---erg:%x",erg)
}


ERGEBNIS


void---erg:3000322e
main---ergebnis: 8048599
_______________________________________________________



Danke für euere Hilfe

Julietta
Gast
ich denke das ist eine Hausaufgabe 'schreibe eine Funktion die Hi und Lo 
in einem 32 Bit Wort vertauscht'. Aber das nur Fahrkarten rauskommen 
liegt z.B. noch daran das abc() nicht mal mit initialisierten Werten 
versorgt wird.
In dem Code ist so ziemlich alles falsch, was man bei
Parameterübergabe nur falsch machen kann.

Lies dir in deinem Textbuch den Abschnitt noch einmal
durch. Langsam, bedächtig und bei jedem Satz überlegen
was dir der Autor sagen will.

Wenn du einen Pointer hast, dann hats du erst mal nur
eine Variable in der eine Speicheradresse gespeichert
werden kann. Damit man mit einer Pointervariablen sinnvoll
arbeiten kann, muss der Pointer erstmal auf gültigen Speicher
zeigen. Sprich er muss erst mal eine Adresse zugewiesen bekommen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.