Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 24 von 24
  1. #21
    NoClose Wurm Avatar von FeroX1337
    Registriert seit
    31.12.2008
    Beiträge
    186

    Standard

    @ BlackBerry Ich habe deinen Post gelesen und auch deine Source angeschaut; nur werde ich aus dieser "linklist" nicht schlau;
    das einzige was ich machen will, ist eine einfache speicherung von 3 namen in einem array; dafür müsste es doch auch was einfacheres geben als eine linklist.

    ich hab auch schon bisschen gegoogelt und zum thema string array etwas gefunden; also es muss ihrgendwie gehen, da ich aber nicht genau weiß wie, komme ich leider nicht vorwärts

    PS: Ebenso habe ich gesagt, dass ich Neuling iim bereich der programmierung bin und daher die hälfte der befehle in der link list nicht nachvollziehen kann
    Geändert von FeroX1337 (09.10.2010 um 14:44 Uhr)

  2. #22
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    ... und das zeigt wieder, dass du das gesammte Konzept der CStrings nicht verstanden hast.
    Wenn du einen CString speichern willst, dann hast du einen hinreichend großen Speicherblock (d.h. einen Bereich im Speicher, der groß genug ist und dir zur Benutzung zur Verfügung steht) und einen Zeiger auf das erste Element im String (==> char *).
    Da du aber nur den Anfang kennst ist es doch irgendwie einleuchtend, dass du das Ende irgendwie markieren musst. Dazu dient das 0-Zeichen (ASCII 0x00). Gibst du also beispielsweise einen String aus, so fängst du beim Anfang an und gibst Zeichen für Zeichen aus, bis du das 0-Zeichen erreicht hast, welches dir also das Ende signalisiert.

    Willst du mehrere Strings speichern, so benötigst du wieder einen hinreichend großen Abschnitt im Speicher und eine Menge an Zeigern, die jeweils auf das erste Zeichen der verschiedenen Strings zeigen.
    Wenn du dir dabei viele Aufrufe zu malloc() sparen willst, dann reservierst du gleich einen großen Block im Speicher und fängst an diesen zu beschreiben.
    Der erste String kommt dann gleich an den Anfang von dem Block. Der zweite landet hinter dem ersten (präziser: hinter dem 0-Zeichen vom ersten, da man später ja noch wissen will, wo der erste CString aufhört). Der dritte landet dann hinter dem zweiten usw.

    Jetzt bleibt nur noch das Problem sich zu merken, wo nun welcher String ist.
    Hier kam jetzt bei mir die LinkedList ins Spiel, weil ja zusätzlich zu den Namen auch die Gruppe verwaltet werden sollte...
    Natürlich könnte man es auch so lösen:
    Code:
    const unsigned int NAME_MAX_LENGTH = 30;
    const unsigned int NAMES_MAX_COUNT = 50;
    
    char names_buff[NAMES_MAX_COUNT * NAME_MAX_LENGTH];
    struct
    {
        unsigned int group;
        char *name;
    } names[NAMES_MAX_COUNT];
    names_buff würde dann die Namen enthalten (Name1\x00Name2\x00Name3\x00...) und names würde dann jeweils den Zeiger auf das erste Zeichen in einem Namen und dessen Gruppe enthalten.

    names[i-1].name wäre dann der Name des i-ten Spielers und names[i-1].group der Index seiner Gruppe.

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  3. #23
    NoClose Wurm Avatar von FeroX1337
    Registriert seit
    31.12.2008
    Beiträge
    186

    Standard

    Ich habe nun mein Vorhaben stark vereinfacht.
    Ich möchte nicht mehr die Namen einer Gruppe zuordnen, sondern mit einer einfachen Schleife eine beliebige Anzahl von Namen (z.B. Max Mustermann) unter Variablen speichern.
    Nach dieser Eingabe soll eine kurze Abfrage erfolgen und der gewünschten Namen wieder ausgeben.

    Zwar habe ich mir die Linklist genauer angeschaut, aber erscheint mir zu meinem Problem noch extrem kompliziert. Das müsste auch einfach gehen, als einfache ein und ausgabe.

    grüße

  4. #24
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Wenn dir die Linked-List zu kompliziert erscheint, dann lies doch einfach mal was ich vorhin geschrieben habe... willst du keine Gruppe verwalten vereinfacht sich
    Code:
    struct
    {
        unsigned int group;
        char *name;
    } names[NAMES_MAX_COUNT];
    einfach zu
    Code:
    char *names[NAMES_MAX_COUNT];
    Das Konzept mit names_buf bleibt unverändert.
    Dir sollte eigentlich schon längst aufgefallen sein, dass hier schon alles dasteht und du es lediglich noch zusammensetzen musst.

    Mir wird das jetzt auch langsam zu blöd mich hier ständig zu wiederholen.

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

Seite 3 von 3 ErsteErste 123

Ähnliche Themen

  1. [VB .NET] Random position?
    Von Kaspersky im Forum .NET Sprachen - Techniken
    Antworten: 10
    Letzter Beitrag: 17.07.2009, 20:06
  2. Zahlen Random
    Von inmate im Forum Source Codes
    Antworten: 1
    Letzter Beitrag: 24.06.2009, 13:57
  3. [C#] Random aus .txt
    Von unna456654 im Forum .NET Sprachen - Techniken
    Antworten: 2
    Letzter Beitrag: 16.03.2009, 12:00
  4. [PHP] Random Banner anzeigen!
    Von Linx002 im Forum PHP
    Antworten: 0
    Letzter Beitrag: 16.12.2007, 11:16

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •