Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Übergabe bei struct

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
13.05.2004, 17:50 Uhr
Sloth



Hi!
Wie übergebe ich ein Struct-array an eine andere Funktion? Ich hab ne Strucktur deklariert und wollte die jetzt an verschiedene funktionen übergeben, es ist ja ein Array, also muss doch beim Prototyp ein * hin, oder? und was muss ich dann im Funktionskopf schreiben? Kann mir einer von euch das mal eklären, wäre nett!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.05.2004, 18:56 Uhr
~mike
Gast


Hi!
So mal wild reingehackt

C++:
#include <stdio.h>
#include <windows.h>

struct stest
{
    int age;
}test[100];

typedef struct stest TEST;
TEST *ptr = test;

void add(TEST *test)
{
    test->age = 3;
    printf("%d\n",test->age);
    ptr = test+1;
    ptr->age = 5;
    printf("%d\n",ptr->age);
}

int main(void)
{
    add(test);
    system("pause");
    return 0;
}



mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.05.2004, 19:41 Uhr
Sloth



Da das ja noch grob zusammen gehört poste ich das jetzt nochmal hierrein, ich hab nämlich auch noch das Problem, dass ich in der Structur n Float wert deklariert hab, aber den nur als int einlesen kann, sonst verreckt das Programm. Ich bekomm zuerst den Runtimeerror 6002 und dannach sagt er das der Floatingpoint nicht geladen wäre.
Also die Strucktur sieht so aus:

C++:
struct video
{
    char titel[50], kat[20] , format[10], sprache[25];
    int dauer, fsk;
    float mb;
};


Und davon wollte ich dann gleich n ganzes Array machen und zwar so:


C++:
struct video nr[100];



Und wenn ich dann so:


C++:
scanf("%f", &nr[n].mb);


versuche den wert einzulesen kommt es eben zu diesem Fehler, nur wenn ich stattdessen %i schreibe gehts, komisch, oder??
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.05.2004, 19:56 Uhr
~mike
Gast


Hi!
Auf die Schnelle sehe ich keinen Fehler. Ist es sicher das scanf schuld?

mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
13.05.2004, 20:03 Uhr
Sloth



Ich denke sachon, weil er eben nach dem einlesen direkt weg ist, das ist das letzte, was er macht und wenn ich da int schreibe, dann geht der schit. Meinst du das es sinn macht das ich mal den ganzen Quellcode poste?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.05.2004, 21:32 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


probier mal

C++:
scanf("%lf", &nr[n].mb);


wenns auch nicht geht mach ein double aus deinem float, dann funzt das bestimmt...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
13.05.2004, 22:20 Uhr
Sloth



Hast recht, mit m doublewert geht es, aber ich hab eben das Problem, dass das n Projekt von der Schule ist und mein InFo lehrer hat die sachen eben so festgelegt, dass heißt ich muss da n Float nehmen. Gibbet denn nicht ne einfache mögl. wie ich da doch ne Floatvariable auch mit nem Float wert beschreiben kann?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
13.05.2004, 22:36 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


also eigentlich muss das auch mit nem float gehen...
wenn ers ums verrecken nicht fressen will nimm halt eine temp double variable.. lies es da ein und caste dann nach float wenn du es gleichsetzt...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
13.05.2004, 22:58 Uhr
Sloth



@Windalf

Nichts gegen deine Art zu erklären, aber du redest hier mir jemenden, der noch nicht all zu weit in C ist, wie meintest du das jetzt wie ich das machen soll?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
13.05.2004, 23:38 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


also ich bin zwar fast sicher das das auch mit nem float gehen muss aber mein vorschlag falls du es mit nem float nicht hinbekommst aber mit nem double war der folgende;


C++:
double temp;
scanf("%lf",&temp);
nr[n].mb=(float)temp;


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: