Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ja, wenn Sie bis zu 3 Buchstaben entfernen
Das ist nicht der Punkt.Versuchen Sie, dieses oder jenes Thema zu studieren, wenn Sie es brauchen. Sobald Sie in Ihrem System einen Punkt erreicht haben, an dem Sie bestimmte "Hebel" (Funktionen) benötigen, können Sie damit experimentieren. Ich habe festgestellt, dass diese Methode des Lernens (in meinem Fall) recht gut funktioniert))).
Dann warten wir auf eine Antwort von kompetenteren Kameraden.))
Warten :)
Besser noch, warten Sie nicht.) Experimentieren Sie weiter.))
Entfernen Sie den Wert aus dem Array, wenn Sie es deklarieren. Es muss wie bei der Hilfe sein:
string result[];
Und Sie werden keine Fehler haben. So wie ich es verstehe, wird die gesamte in der to_split-Variable angegebene Zeichenfolge in das Array eingefügt, und dann wird die Extraktion der Teilzeichenfolge fortgesetzt.Besser noch, warten Sie nicht.) Experimentieren Sie weiter.))
Entfernen Sie den Wert aus dem Array, wenn Sie es deklarieren. Es muss so sein, wie es in der Hilfe steht:
Und es werden keine Fehler auftreten. Soweit ich es verstanden habe, wird die gesamte in der to_split-Variable angegebene Zeichenfolge in das Array eingefügt und dann eine Teilzeichenextraktion durchgeführt.Das ist klar. Nur ist dies ein potenzieller Fallstrick - ich habe diesen Fehler tatsächlich in meinem Code gefunden und es funktioniert - mit einem Fehler.
Hier ist zum Beispiel der Hilfetext für CopyBuffer
Wo ist die Logik? Ich meine, was ist der Unterschied zu StringSplit?
Und wenn Sie alle Arrays dynamisch machen, wird Ihnen der Speicher ausgehen.
Upgr ArrayResize mit Zeroing ist natürlich eine Variante, aber ich mag sie nicht.
So wie ich es verstehe, wird die gesamte in der to_split-Variable angegebene Zeichenfolge in das Array eingefügt, und dann wird die Teilzeichenfolge extrahiert.
In Ihrem Beispiel besteht das Problem darin, dass die Funktion StringSplit() selbst für die erforderliche Menge an Speicher in dem als Parameter übergebenen Array sorgt.
Es stellt sich also heraus, dass ein statisches Array funktioniert (wenn genügend Speicher vorhanden ist), aber einen Fehler verursacht, weil die Leute versuchen, es neu aufzuteilen.
Probieren Sie die statischen und verteilten dynamischen Arrays aus und Sie werden sehen:
Probieren Sie die Variante mit statischen und verteilten dynamischen Arrays aus, und es wird Ihnen klar werden:
Um das dynamische Array auszuprobieren, entfernen Sie einfach das Kommentarzeichen ArrayResize(result,3); ? Wenn dies der Fall ist, wird bei der Kompilierung eine Warnung ausgegeben:
Um ein dynamisches Array auszuprobieren, kommentieren Sie einfach ArrayResize(result,3); ? Wenn ja, gibt es eine Warnung zur Kompilierung:
Ist dies ein unlösbares Problem? Machen Sie es dynamisch.
In Ihrem Beispiel besteht das Problem darin, dass die Funktion StringSplit() selbst für die erforderliche Menge an Speicher in dem als Parameter übergebenen Array sorgt.
Das ist der Grund, warum ein statisches Array funktioniert (wenn genügend Speicher vorhanden ist), aber einen Fehler verursacht, weil die Leute versuchen, es neu aufzuteilen.
Also, können wir StringSplit() mit statischen Arrays verwenden oder nicht?
Wenn Sie das können, sollte es keine Fehlermeldung geben, wenn genügend Speicher vorhanden ist. Wenn nicht, sollte es nicht funktionieren.