Announcement

Collapse
No announcement yet.

Struktur

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Struktur

    Habe in Borland 5.0 in der Main folgende Struktur definiert:<BR>
    #define MAX 2000

    //Datenstruktur SegeldataBase

    struct Segeldatabase
    {
    int id;
    AnsiString bootstyp;
    struct
    {
    AnsiString bootsname;
    AnsiString p,e,i,j,t,gross,g1,g2,g3,stmfo,spi,blister,date,be merkungen;
    }boot,*pboot;
    }extern segel[MAX],*psegel;

    Die Structur wird auch im Klassenassistenten angezeigt<br>

    wenn ich aber schreibe:<br>
    segel[1].bootsname="hiddensee";

    kommt folgender Fehler:<br>
    [C++ Fehler] Main.cpp(24): E2356 Redeklaration von 'segel' mit anderem Typ<br>
    [C++ Fehler] Main.cpp(24): E2141 Fehler in der Deklarationssyntax

  • #2
    Erstens: Bei deinem nächsten Posting setze doch bitte &lt;pre&gt;...&lt;/pre&gt; um Code-Zitate. Dann kann man's deutlich besser lesen. :-)
    <br>(Mit yapp (aus der Borland Code Central) wird's sogar bunt.)

    Zweitens: Ich würde an deiner Stelle erstmal Typ- und Variablendeklarationen
    trennen. Dann wird der Code auf jeden Fall übersichtlicher und -- wenn du Glück hast -- sogar fehlerfreier. :-)
    <br>Vielleicht so ähnlich:
    <pre class="sourcecode"><code>
    <b>struct</b> TBoot
    {
    AnsiString bootsname;
    AnsiString p,e,i,j,t,gross,g1,g2,g3,stmfo,spi,blister,date,be merkungen;
    };
    <br>
    <b>struct</b> TSegel
    {
    <b>int</b> id;
    AnsiString bootstyp;
    TBoot boot;
    };
    <br>
    <b>extern</b> TSegel segel[MAX];
    </code></pre>

    Die ganzen Zeigerdeklaration (pboot, psegel) hab ich einfach mal
    rausgelassen. Sollten sie tatsächlich nötig sein, füge sie als <b>eigenständige</b> Variablendekalarationen wieder dazu:
    <pre class="sourcecode"><code>
    <b>extern</b> TSegel segel[MAX];
    TSegel* psegel;
    </code></pre>
    (Ob das "extern" nötig, schädlich oder einfach ohne Wirkung ist, kann ich dir jetzt nicht sagen.)
    <p>HTH, Uli

    Comment


    • #3
      Hallo Uli,
      erstmal danke für deine Tips.<br>
      wie du bemerkt hast bin ich noch Anfänger.<br>
      Der Fehler allerdings lag nicht in der Struktur, sondern<br>
      ich habe die wertzuweisung nicht in einer Funktion sondern<br>
      in einer unit.cpp aufrufen wollen..<br>
      In der Konsole hatte ich immer die int main() , daher ist mir.<br>
      das nicht aufgefallen.In der IDE muss man da wohl umdenken..<br>
      Um aber noch mal auf die Pointer zu kommen.:<br>
      In der Schule mussten wir alles mit Zeiger und Referenzen machen,<br>
      tatsächlich habe ich oft Fehler beim Speicherzugriff wenn ich<br>
      Zeiger verwende.Verwende ich aber die variablen o.ä. funktionierts.<br>
      Kannst du mir eventuell Infomaterial(gute Internetseiten) über Sinn<br>(Unsinn)von Zeigern empfehlen, die auch verständlich sind?<br>Wann und wo sollte man Sie einsetzen und warum?<br>
      <br>
      MfG Andreas Link

      Comment


      • #4
        http://home.snafu.de/christian.marquardt/quickies.1/1_index.html#form
        Christian

        Comment

        Working...
        X