Array an Function übergeben

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
  • Hallo.


    Ich möchte einer Function ein (dynamisches) Array übergeben.


    Geplant ist folgendes:
    function FunkName(array[])
    {
    for(new i=0;i<sizeof(array); i++)
    {
    if(array[i] == 22) var 1= 1;
    else if(array[i] == 4) var2 = 1;
    else if(array[i] == 1) var3 = 1;
    else if(array[i] == 24) var4 = 1;
    }
    }


    new testarray[] = {14,45,12};
    FunkName(testarray);


    Mit dynamischem Array meine ich, es kann mal 2, mal 5 Zellen haben.
    Meine bisherigen Suchen haben mich nicht weitergebracht.


    MfG
    Wepper


    //Edit 1: Problem genauer Beschrieben

    Mit freundlichem Gruß
    Weper

    Einmal editiert, zuletzt von wepper ()


  • Einfach so:


    Hallo,


    danke für die prompte Antwort.
    Leider kann ich das Array dann nicht abfragen.
    Wenn ich es direkt im selben Script abfrage, bleibt array[]="",
    sende ich nen request per CallRemoteFunction, ist array[]="x".


    Da auch die for Schleife nicht ausgeführt wird, vermute ich mal, dass es nicht am %s Parameter in der Debug printf oder im CallRemoteFunction liegt, sondern wo anders.
    Hat noch jemand eine Idee?


    MfG
    Wepper

    Mit freundlichem Gruß
    Weper

  • Deinem Beispiel nach habe ich das mal getestet, also bei mir geht das:


    new testarray[] = {14,4,12,5,24};


    public OnFilterScriptInit()
    {
    FunkName(testarray);
    return 1;
    }


    stock FunkName(array[])
    {
    new var1, var2, var3, var4;
    for(new i=0;i<strlen(array); i++)
    {
    if(array[i] == 22) var1= 1;
    else if(array[i] == 4) var2 = 1;
    else if(array[i] == 1) var3 = 1;
    else if(array[i] == 24) var4 = 1;
    }
    printf("%d / %d / %d / %d",var1, var2, var3, var4);
    return 1;
    }


    print:

    Zitat

    [09/01/2015 17:52:33] 0 / 1 / 0 / 1


    Meintest du es so?