ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
402
402
EMPFEHLEN
-
Also ich will ein Führerscheinprüfungs programm schreiben. Leider weiss ich nicht mehr weiter. Man hat mir gesagt das programm ramspeicher freigeben muss oder so.
Naja hier erstmal link zum Code http://nopaste.php-q.net/215586
Programmiere mit dev cpp leider kennt das irgendwie nich alle funktionen das programm stürzt halt immer ab.
-
30.05.06 18:05 #2
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi, willkommen bei tutorials.de!
Wenn du sagst du benutzt Dev-C++, warum schreibst du das dann ins Borland CBuilder / VCL Forum?
Bevor du den Speicher freigibst oder benutzt mußt du erstmal Speicher überhaupt vom System anfordern. Das machst du nämlich nicht, sondern du initialisierst die Variable fragen z.B. mit NULL (was ja schonmal an sich nicht schlecht ist, da es ein Pointer ist), aber du greifst dann einfach auf fragen[0], fragen[1], usw. zu. Das geht natürlich nicht denn der Zeiger zeigt ja auf nichts.
Warum verwendest du dafür denn überhaupt Zeiger, du kannst doch gleich statische Arrays anlegen:Code cpp:1 2 3 4 5 6
char* fragen[30]; fragen[0] = "..."; fragen[1] = "..."; ... fragen[29] = "...";
Übrigens würde man das normalerweise nicht mit 5 Arrays realisieren sondern dazu Strukturen verwenden.
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
ist für die schule alles muss man sich selbe beibringen
hab davor schon für anderen morse prog geschrieben da hab ich es ähnlich funktioniert aber da ist er auch immer abgeschmiert darum hab ichs anders gemacht. Warum ichs hier poste weil ich eigentlich mit augenkrebsprogramm turbo c 3.0 programmiere. Was macht das * nach dem char. Ich weiss das sollte man mit einem array machen aber erstmal brauch ich ein lauffähiges prog optimieren kann ich das später noch.
Geändert von neonium (30.05.06 um 22:21 Uhr)
-
31.05.06 10:56 #4
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Das Sternchen hat erstmal im Grunde nichts mit Arrays zu tun. Es bedeutet lediglich das ein Zeiger auf einen bestimmten Typ deklariert wird.
Deklarationen kann man am besten immer von rechts nach links lesen. In diesem Fall steht da: "deklariere ein Array von 30 Elementen vom Typ Zeiger auf char (namens fragen)".
Das da ein Array deklariert wird siehst du an den eckigen Klammern und der Angabe der Anzahl der Elemente.
Ein Zeiger auf char ist etwas besonderes in C da man damit einen String deklariert. Man kann also auch sagen es wird ein Array von 30 Elementen von Strings vereinbart. Und das ist ja im Grunde genau das was du brauchst.
Ich habe übrigens noch kein Wort von Optimierung gesagt. Wenn du das mit einem dynamischen Array machen willst so wie du es angefangen hast mußt du zusätzlich erstmal den Speicher reservieren und danach wieder freigeben:Aber ich würde sagen, das das für den Anfang noch etwas schwierig ist. Das kannst du ja für dich selbst entscheiden ob die lieber ein statisches Array nimmst (wo der Compiler automatisch dafür sorgt das es angelegt und wieder aufgeräumt wird) oder ein dynamisches Array vorziehst.Code c:
Die Deklaration von fragen bedeutet übrigens: "deklariere eine Variable vom Typ Zeiger auf Zeiger auf char (namens fragen)".
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
31.05.06 11:14 #5
@neomium: Groß- und Kleinschreibung und Satzzeichen tragen erheblich zum Verständnis eines Textes bei.
"Jetz is, wo früher inne Vergangenheit die Zukunft war." Herbert Knebel
"Jetzt sind die guten alten Zeiten, nach denen wir uns in zehn Jahren zurücksehnen werden." Peter Ustinov
-
Ja ok. Ich schreib jetzt mal ordentlich. Also ich habe das ganze zeit mal angepasst.
hier http://nopaste.php-q.net/215996 des Codes, aber irgendwie funktioniert das nicht. Er geht aber irgendwie nicht aus der schleife von zeile 342 raus.
Er generiert immer wieder fragen. Obwohl er eigentlich nur soviele fragen ausgeben soll, wie ich vorher angegeben hab.(Geändert von neonium (31.05.06 um 16:04 Uhr)
-
31.05.06 15:08 #7
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hm...
Zitat von neonium
Ja ok. Jetzt komm ich mir verarscht vor. Pass auf das ich dich nicht kaputt lache.
Zitat von neonium
Überarbeite doch deinen Beitrag einfach nochmal im Hinblick auf Rechtschreibung und semantischen Inhalt. Was meinst du mit 342?
Gruß
PS: Du mußt an scanf Adressen übergeben:Code c:1
scanf("%i",&i);
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
gibs ne alternative zu
variable=random(zahl);
delay()
-
01.06.06 10:22 #9
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Ja, gibt es. Aber halte dich erstmal an die Groß-/Kleinschreibung - siehe Netiquette Nr. 15.
Zitat von neonium
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
Ähnliche Themen
-
Frage zu Pointern
Von Quwerfeldein im Forum C/C++Antworten: 2Letzter Beitrag: 04.01.11, 09:32 -
Verwirrung mit Pointern
Von UncleBob im Forum C/C++Antworten: 2Letzter Beitrag: 16.11.10, 17:44 -
Programmabsturz bei Pointern
Von Manda im Forum C/C++Antworten: 14Letzter Beitrag: 17.05.09, 00:09 -
Dumme Frage zu Pointern
Von Orbit im Forum C/C++Antworten: 2Letzter Beitrag: 03.02.08, 23:33 -
2D-Feld pointern
Von Meldur im Forum .NET CaféAntworten: 0Letzter Beitrag: 10.08.05, 12:19





Zitieren
Login






