Error 47

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(25115) : error 021: symbol already defined: "strtok"
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(25130) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(26655) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(26715) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(26716) : warning 217: loose indentation
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(26768) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(27436) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(27495) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(28176) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(28204) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(28215) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(28275) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(28544) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(28571) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(28601) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(28609) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(28643) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(28651) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(28684) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(28729) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(28792) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(28850) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(28858) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(28893) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(28901) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(29128) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Yannik Böltes\Desktop\ravens\gamemodes\larp.pwn(29182) : error 047: array sizes do not match, or destination array is too small


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    26 Errors.


    Jeder fehler betrifft strtok

  • Die erste Fehlermeldung ist ja wohl klar, die Funktion strtokwurde bereits vorher schon mal definiert.


    Und beim Rest da wird man ohne Quelltext nicht viel dazu sagen können...

    Intel Xeon W3690 Hexacore @ 4.5 GHz - 48GB Triple Channel DDR3 - GeForce RTX 2070 Super - Asus P6T Deluxe V1 @ P6T WS Pro BIOS

    Mainboard 12 Jahre, CPU 10 Jahre alt - old but gold!

  • Mir ist bewusst, dass der Threadstarter gesperrt ist, aber auf Grund der falschen Informationen hier möchte ich das kurz klarstellen, da es ja noch nicht all zu lange her ist.
    Der Fehler ist kein Klammerfehler.


    Das Problem ist, dass es verschiedene Versionen von strtok gibt, die alle unterschiedliche Result-Größen haben (das was zurück gegeben wird). Darunter gibt es eine Version, die gibt Results mit einer Größe von 256 zurück. Macht man im Code nun sowas:

    C
    new tmp[64], idx;
    tmp = strtok(cmdtext, idx);


    Dann tritt genau der Error 47 auf:
    error 047: array sizes do not match, or destination array is too small
    Das heißt: Die Arraygrößen stimmen nicht überein, oder das Zielarray ist zu klein. Letzteres trifft zu, da das Zielarray in unserem Beispiel nur eine Größe von 64 hat. Gibt strtok nun aber ein Array mit einer Größe von 256 zurück, dann passt das da nicht rein, entsprechend wird der Fehler ausgegeben.


    Lösung des Problems ist entweder in strtok das "result"-Array kleiner zu machen (256 ist unnötig groß), oder man setzt das "tmp"-Array aus dem Code oben von 64 auf 256, dann ist der Fehler ebenfalls weg.


    Ich verweise auch gleich auf die von mir optimierte strtok Variante:
    Nützliche Codeschnipsel - strtok v2.0

  • Der Fehler ist kein Klammerfehler.

    Das kann, muss aber nicht sein.
    Weil wenn man das Skript hat, permanent kompiliert alles gut läuft...dann einen Command hinzufügt und plötzlich 26 Errors hat...und zufälliger Weise habe ich auch schonmal vor etlichen Jahren an einem GF-Edit gearbeitet und mal eine Klammer vergessen und da kamen auch diese Fehler.


    Nichtsdestotrotz ist die strtok Funktion schlecht.


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Auf Grund des ersten Errors sind die nachfolgenden Errors nicht anders zu erklären.
    Ein Klammerfehler kommt bei diesem Fehlerbild nicht in Frage, unter keinen Umständen.


    26 Errors ist das Maximum an Errors, mehr gibt er dir nicht aus. Das heißt aber nicht zwangsläufig, dass es ein Klammerfehler ist.



    Nichtsdestotrotz ist die strtok Funktion schlecht.

    Das ist Ansichtssache und kann nicht pauschalisiert werden.

  • Doch natürlich..ich rede hier von der Performanz...aber ok.

    Performanz...


    Zeig mir einen Weg mit PAWN mitteln, das besser zu gestalten.


    Ansonsten vergleichen wir hier C++ Code mit PAWN Code

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Ich vergleiche hier nicht sscanf & strtok.


    Ich meine die Funktion von jeffry ist zumbeispiel besser...ich rede nur von der ersten Version..die veröffentlicht wurde :rolleyes:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S