06. februar 2004 - 11:09Der er
9 kommentarer og 3 løsninger
samling af tog og rute i samme køreplan
Jeg har følgende kode (bare rolig - den er ikke særlig lang...)
// segment er et stykke af en jernbanestrækning struct segment{char* navn; int laengde;}; struct segment s[]={"s1",100,"s2",150}; struct segment *rute1[]={&s[0],&s[1]};
struct tog{char* navn; int hastighed;}; struct tog t[]={"tog1",100,"tog2",80};
struct koereplan{struct tog Toget;struct segment rute[]}; struct koereplan koereplan1[]={&t[0],&*rute1};
compileren brokker sig over at elementerne i køreplanen ikke er "forenelig med målet". Er det ikke måden at samle tog og rute på? - og hvorfor kommer den fejlmeddelelse?
Jeg kender INTET til C/C++, men jeg kender en del til kode-syntax. Mangler der ikke nogle {'er?
// segment er et stykke af en jernbanestrækning struct segment{char* navn; int laengde;}; struct segment {s[]={"s1",100,"s2",150}; //Har indsat { her struct segment {*rute1[]={&s[0],&s[1]}; //Har indsat { her
struct tog{char* navn; int hastighed;}; struct tog t[]={"tog1",100,"tog2",80};
struct koereplan{struct tog Toget;struct segment rute[]}; struct koereplan {koereplan1[]={&t[0],&*rute1}; //Har indsat { her
struct koereplan er typen (tilsammen) i c - koereplan1 er navnet og [] viser at det er et array(bestående af "objekter" af typen "struct koereplan"...) så dit forslag virker ikke helt... :-( - ellers godt forsøg ;-)
- har prøvet ændringen - giver ingen forskel... fejlmeddelelsen er: 1: warning: klargøring fra en henvisningstype der ikke er forenelig med målets 2: warning: klargøring opretter et heltal ud fra en henvisningstabel uden en typeomtvingning (begge meddelelser henviser til sidste linie...)
jeg bruger gcc - nu brokker den sig i stedet over at "startværdien ikke er en konstant""(i nærheden af klargøringen af 'koereplan1[0].rute'). Derudover skal jeg bruge en array, hvor du har skrevet "*r" - så det bliver nødt til at være *r[], eller noget lignende...
Jeg er ikke sikker på at du val have et array. Jeg tror at du vil have en "rute" - det er vel derfor du har rute1. Følgende kompilerer formodentlig også med gcc, men strukturen er lidt anderledes, men jeg tror at det kan bruges til det du ønsker.
Virker!! - sidste lille spørgsmål før du får dine (velfortjente )point... ;-) Jeg tror at du har ret mht at afslutte rute1 Jeg har prøvet på denne måde:
Jeg tror sådan set at din gamle rute er god nok, men på et tidspunkt får du vel brug for at bruge den i dit program og så ved du vel ikke hvor mange segmenter der er i din rute. Med mindre alle ruter har samme længde? Derfor tænkte jeg på noget i retning af: struct segment *rute1[]={&s[0],&s[1],NULL}; Det vil nok hjælpe dig senere.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.