Probleme mit char



  • Hallo,
    ich habe hier ein kleines Verständisproblem mit char. Ich habe für Testzwecke folgende Variable angelegt:

    char filename[] = "/home/liox/Project/xmlfile.xml";

    Wie man sieht eine ganz normale Pfadangabe. Wenn ich den String nun ausgeben lasse, erhalte ich lediglich ein Quadrat was auf der Spitze steht.
    Nun habe ich den String mal verkürzt auf /home/liox/Projec und siehe da, jetzt bekomme ich die Ausgabe. Was mache ich falsch? Ich dachte mit der Angabe von [] wird die Länge des Strings vom Compiler berechnet und dementsprechend auch Speicher reserviert.

    MfG
    Liox



  • Beispielcode? Ich wette du pfuscht an irgendeiner anderen Stelle im Stack rum.



  • Ja, daran wird es wohl nicht liegen.

    Gib uns bitte ein Minimalbeispiel, sowas sollte nämlich funktionieren:

    #include <stdio.h>
    
    int main(void)
    {
        char filename[] = "/home/liox/Project/xmlfile.xml";
        printf("%s\n", filename);
        return 0;
    }
    

    Da sich das nicht nach einem Unix-Problem anhört, verschiebe ich Dich mal zu den Kollegen vom C-Forum.



  • Dieser Thread wurde von Moderator/in nman aus dem Forum Linux/Unix in das Forum ANSI C verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • danke für Eure Hilfe, ich hab den Fehler gefunden. Es lag an einer uninizialisierten Variable, welche direkt danach deklariert wurde. Da das nur ne Warnung vom Compiler war, hab ich mir nicht all zu viel bei gedacht... Das das solche Nebeneffekte haben kann, war mir nicht bewusst. Nun funktionierts wie gewohnt...

    MfG
    Liox



  • Allein daran, dass die Variable nicht initialisiert ist, liegt es auch nicht. Vielmehr sind die Effekte verantwortlich, die durch den nicht definierten Wert der Variable entstehen.


Log in to reply