Hab da ein Problem mit einem c-Script

  • Halo ihrz!
    ich hab mich die letzten paar Tage mit C befasst und bin da auf folgenden Code gestoßen


    Aber dummerweise gibt er mir da Zahlen aus die unmöglich sind und ich weiß nicht warum!!!
    Deshalb meine Frage: brauch ich ein neues hirn oder nen anderen Compiler???

    :confused: bin noch relativ neu, also nehmt mir nicht alles so krumm :confused:

  • Was sollten denn für Zahlen rauskommen?

    Vielleicht hast du ja einen Überlauf, da ein short nur einen Wertebereich von -32768 bis 32767 hat.

    Viele Menschen sind zu gut erzogen, um mit vollem Mund zu sprechen,
    aber sie haben keine Scheu, es mit leerem Kopf zu tun.
    (Orson Welles)

  • Zitat von Booster84
    Code
    VerkehrsZaehlung[ANZAHL]= -1;
    ...
    	for (summe = 0, pt=&VerkehrsZaehlung[0]; *pt!=-1; pt++)
    		summe = summe + *pt;
    ;
    }

    warum tust du das? wozu ueberhaupt einen pointer? warum VerkehrsZaehlung[ANZAHL] auf -1 ?
    find ich ziemlich sinnlos...

    mein vorschlag:

    even newton had his best ideas on an apple...

  • Also normal tät ich das auch anders machen. Aber wenns einfach nur um ein Beispiel zur Übung des Umgangs mit Pointern is, find ich es sehr originell. Gfallt ma.

    Ich würd mal das ganze debuggen, oder zumindest Statusmessages ausgeben.

    scanf scheint aufgrund von %d den nächsten short von VerkehrsZaehlung zu überschreiben. Daher wird dein "VerkehrsZaehlung[ANZAHL] = -1;" mit 0 überschrieben. Somit läuft die ganze Schleife willkürlich weiter bis irgendwann im Speicher ein -1 auftaucht. Und immer werden irgendwelche Speicherinhalte zur summe addiert, daher die komischen Werte.

    Ich würd entweder das scanf anders formulieren, oder du machst das array um noch 1 größer und hast halt ein ungenütztes Feld drin.

    [edit]
    Verwende einfach als Conversion Specifier in der scanf anstatt von %d einfach %hd (steht für short int oder unsigned short int), dann sollte es funktionieren.
    [/edit]

    ... und ich möchte noch darauf hinweisen:
    Schranken verlaufen nicht zwischen Völkern,
    sondern neben den Gleisen!
    (Quetschnpaua)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!