Status_access_violation



  • Phenny schrieb:

    Und ich hab so meine Probleme mit den Pointern^^

    Das geht jedem Anfänger so.
    Also dann:

    char x[256];
    ...
    fgets(x,sizeof x,stdin);
    ...
    


  • Oh mein Gott,

    warum bin ich bloß nicht auf "sizeof" gekommen? 😕
    Ich glaube nämlich, dass ich das schon einmal benutzt habe.

    Gibt es auch eine so simple Lösung für das andere Problem?



  • Was für ein anderes Problem?



  • Phenny schrieb:

    Ein bisschen anders dachte ich eigentlich.

    Und zwar halt z.B. so (ist echt schwer umzusetzen)

    1 2 3 4 5 6 7 8 9 10
    -----------------------------
    * * * *
    * * *
    * *
    *
    -----------------------------
    3 4 //Zeigt an wieviele Wörter die
    //entsprechende Anzahl an Buchstaben
    //haben und zählt sie auf, falls
    //es sonst zuviele Sternchen werden

    ich weiß, dass klingt echt dämlich 😕

    Das Problem :p



  • Phenny schrieb:

    -----------------------------
    3 4 //Zeigt an wieviele Wörter die
    //entsprechende Anzahl an Buchstaben
    //haben und zählt sie auf, falls
    //es sonst zuviele Sternchen werden

    char strtmp[10];
    ...
    for(i=0;i<MAXW;++i)
      printf("%3s",l[i]>7?_itoa(l[i],strtmp,10):"");
    

    wobei _itoa kein ANSI C mehr ist.



  • Es gibt aber eine Alternative Funktion die ANSI C ist.
    Mit

    sprintf(strtmp,"%d",l[i])
    

    geht das auch, oder wers sicher mag kann auch snprintf verwenden.



  • Ja aber, wie mache ich das dann, wenn _itoa kein Ansi-C mehr ist?
    Der Compiler erkennt das ja dann nicht mehr. 😞



  • Ich habe auch schon probiert, sprintf bzw. snprintf in diese Zeile umzubauen,
    hat er aber dann andauernd Probleme mit dem Pointer. . . 😕



  • Phenny schrieb:

    Ich habe auch schon probiert, sprintf bzw. snprintf in diese Zeile umzubauen,
    hat er aber dann andauernd Probleme mit dem Pointer. . . 😕

    Wenn du MS-VC++ verwendest, ist _itoa definiert und du kannst es verwenden.
    itoa stammt noch aus seligen K&R Zeiten und hat es damals nicht in den ANSI Standard geschafft.
    Ansonsten bleiben nur längere Konstrukte übrig, wie

    (sprintf(strtmp,"%d",l[i]),strtmp)
    


  • Also, ich benütze NetBeans und den Compiler Cygwin...
    und der kennt diese Funktion leider nicht.



  • Ich habe es nun wie in deinem Beispiel gemacht, und es Funktioniert
    hervorragend. 😋
    Deshalb muss ich nocheinmal sagen wie dankbar ich euch
    bin! Also, recht herzlichen dank euch beiden!


Anmelden zum Antworten