Archiv verlassen und diese Seite im Standarddesign anzeigen : [C] Array Größe und Ini- Dateien
sixfriends
13-02-2004, 13:59
1. Ich will ein Array definieren, von dem ich die Größe erst zur Laufzeit des Programmes kenne. Ist das irgendwie möglich? Vielleicht, indem ich den Speicherplatz selbst allokiere? Aber wie bekomm ich das ganze dann in die Struktur eines Arrays?
Ich hab schon den Typ vektor gesehen, aber das hört sich ziemlich nach Liste an. Wenn das ne Liste ist, könnte ich mir das Ding auch selbst implementieren.
2. Ich hab bei einigen Programmen mal die Ini- Dateien durchgeguckt und die meisten sind so aufgebaut (Benutze z.Z. die Win32.api):
[Überschrift]
Variable1=Wert1
Variable2=Wert 2
....
Bringt mich zu der Annahme, dass es zum Einlesen der Dateien eine vordefinierte Funktion gibt. Oder muss ich mir da doch selbst was coden?
thx im Voraus - sixfriends
SeeksTheMoon
13-02-2004, 15:02
Mit Vektoren arbeitet man meistens besser als mit Arrays, denn es sind Arrays mit netten Zusatzmethoden, die einen vor Fehlern schützen und einem Zeit sparen.
Ob es für die ini-Dateien in der W32 Bibliothek eine fertige Funktion gibt weiß ich nicht, so eine Funktion habe ich nämlich noch nicht gesehen.
Aber das ist ja relativ leicht selber zu implementieren
Original geschrieben von sixfriends
...Ich hab schon den Typ vektor gesehen, aber das hört sich ziemlich nach Liste an. Wenn das ne Liste ist, könnte ich mir das Ding auch selbst implementieren...
Nichts gegen deine Programmierkünste, aber erfindest du das Rad immer neu ;) ?
Falls du mit "Zahlen-Arrays" arbeitest, kannst du den Container valarray benutzen.
greets
f0rtex
p.s.: die STL ist da um gebraucht zu werden ;)
sixfriends
13-02-2004, 20:51
Ich schreib mir meine Listen normalerweise immer selbst. Hat den Vorteil, dass ich die Dinger immer genau auf meine Wünsche anpassen kann. :eek:
Im übrigen will ich Strings laden. Gibt es jetzt eine Möglichkeit, mir beispielsweise selbst Speicherplatz allokieren und daraus ein Array zu bauen. Wäre mir wirklich lieber als eine Liste und die Größe des Arrays muss sich auch nicht mehr ändern, wenn es mal erstellt ist. --> Überflüssige Funktionalität in vektor....
Hat wriklich keiner ne gute Idee dazu?
EDIT: Mit gute Idee mein ich was, das mir konkret hilft, war nicht beleidigend gemeint :rolleyes:
hallo,
kannste keine VLA's benutzen?
z.b so:
int zeilen=20;
int spalten=40;
char array[zeilen][spalten]
brauchste aber nen c99 compiler für
beim gcc dann noch die -std=c99
anda_skoa
14-02-2004, 14:31
Original geschrieben von sixfriends
2. Ich hab bei einigen Programmen mal die Ini- Dateien durchgeguckt und die meisten sind so aufgebaut (Benutze z.Z. die Win32.api):
[Überschrift]
Variable1=Wert1
Variable2=Wert 2
....
Bringt mich zu der Annahme, dass es zum Einlesen der Dateien eine vordefinierte Funktion gibt. Oder muss ich mir da doch selbst was coden?
Ja, die WinAPI hat dafür eigene Funktionen.
Außerdem gibt es hunderte Bibliotheken, die INI-Style Dateien parsen und schreiben können.
Ciao,
_
DanDanger
22-02-2004, 17:01
Hi,
natürlich kannt du Speicherplatz für dein Array Dynamisch Allozieren.
In C Wird ein Array ja als Zeiger auf das erste Array-Element angesehen.
z.B.
char *MyStringArray ;
unsigned int NrOfElements
MyStringArray = malloc(sizeof(char * NrOfElements)) ;
Nun ist im Speicher Platzt für <NrOfElements> viele char's.
Den Zugriff auf das Array geht dann wie gewohnt über MyStringArray[x]
Gruss
DanDanger
Original geschrieben von DanDanger
MyStringArray = malloc(sizeof(char * NrOfElements)) ;
Klammern falsch gesetzt.
Außerdem ist sizeof(char) immer 1,also reicht
MyStringArray = malloc(NrOfElements) ;
sixfriends
22-02-2004, 19:19
Werd ich demnächt ausprobieren. thx.
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.