kostenloser Webspace werbefrei: lima-city


Problem mit char Arrays?

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    krisi12345

    Kostenloser Webspace von krisi12345

    krisi12345 hat kostenlosen Webspace.

    Ich hab einen Array mit chars drin
    char *objects[]={"object1","object2"};

    Aber wenn ich die Variablen dann z.B. mit
    printf("%s", objects[0]);
    ausgeben will kommt immer ein Fehler.

    Wo liegt der fehler und wie mach ich es richtig?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. kochmarkus

    Co-Admin Kostenloser Webspace von kochmarkus

    kochmarkus hat kostenlosen Webspace.

    Also bei mir kommt kein Fehler, funktioniert wunderbar und der Code ist meiner Meinung nach auch richtig. Was für ein Fehler kommt den bei dir?
  4. Autor dieses Themas

    krisi12345

    Kostenloser Webspace von krisi12345

    krisi12345 hat kostenlosen Webspace.

    kochmarkus schrieb:
    Also bei mir kommt kein Fehler, funktioniert wunderbar und der Code ist meiner Meinung nach auch richtig. Was für ein Fehler kommt den bei dir?

    gcc compiler unter Ubuntu 10.04:
    test.cpp:4: warning: deprecated conversion from string constant to ‘char*’
    test.cpp:4: warning: deprecated conversion from string constant to ‘char*’
    test.cpp:6: error: expected constructor, destructor, or type conversion before ‘(’ token
  5. Also für mich klingt der Fehler nach folgendem Problem:
    Du hast eine Zeichenkette mit "TEXT" erstellt. Solche Zeichenketten sind vom Typ const char*.
    Ich denke jetzt ist schon klar, dass dein Problem ist, dass du das auf einen char* zuweisen möchtest.
    Das macht der Kompiler nicht mit, weil du damit das const entfernst und eventuelle Zugriffsfehler erzeugst.
    Fazit:
    const char *objects[] = {"Bla","Blabla"};

    sollte dein Problem lösen.

    PS:
    Theoretisch sollte dein Kompiler die Fehlermeldung auch auf der Zeile der Erzeugung des Arrays bringen und damit zeigen, dass das Problem nicht bei printf liegt ;-)

    [Edit]
    Semikolon im Quellcode vergessen ^^

    Beitrag zuletzt geändert: 29.6.2010 17:18:41 von sektor
  6. kochmarkus

    Co-Admin Kostenloser Webspace von kochmarkus

    kochmarkus hat kostenlosen Webspace.

    Ich hab auch auf Ubuntu 10.04 mit gcc kompiliert, sogar mit gcc -Wall -pedantic test.c, und erhalte keine Warnings oder Errors und das Programm läuft fehlerfrei. Copy&Paste doch bitte mal deinen gesamten Code rein und nicht nur die zwei Zeilen.

    PS: Hier mein Code der ohne Probleme kompiliert:
    #include <stdio.h>
    
    int main(void)
    {
      char *objects[]={"object1","object2"};
      printf("%s", objects[0]);
      return 0;
    }
  7. Autor dieses Themas

    krisi12345

    Kostenloser Webspace von krisi12345

    krisi12345 hat kostenlosen Webspace.

    kochmarkus schrieb:
    Ich hab auch auf Ubuntu 10.04 mit gcc kompiliert, sogar mit gcc -Wall -pedantic test.c, und erhalte keine Warnings oder Errors und das Programm läuft fehlerfrei. Copy&Paste doch bitte mal deinen gesamten Code rein und nicht nur die zwei Zeilen.

    PS: Hier mein Code der ohne Probleme kompiliert:
    #include <stdio.h>
    
    int main(void)
    {
      char *objects[]={"object1","object2"};
      printf("%s", objects[0]);
      return 0;
    }


    Ich musste vor das "char* objects[]..." ein "const" tun. Hats sich also schon erledigt. Aber trotzdem danke (-;
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!