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
kann memcpy verwendet werden?
nein )
Sie sehen, wenn Sie einige Vorbereitungen treffen müssen, bevor Sie SendParam aufrufen, ist es einfacher, int in eine CInt-Klasse zu packen.
Es gibt keine native Möglichkeit, einen Zeiger zu nehmen. Ich meine, wenn Sie den CInt-Wrapper nicht von Anfang an verwenden, werden Sie es schwer haben, mit Zeigern umzugehen.
Der Vorteil ist, dass Sie auch kochen.
{
//do something
}
{
int x = 5;
f(&x);
}
Die Aufnahme einer Adresse ist eine Vorbereitung. Stattdessen wird es sein
f(GetPtr(x)) und Sie müssen den Typ übergeben
Angenommen, es gibt eine Funktion in einer Klasse
in dem der Typ des Parameters (type) und der Parameter selbst bzw. ein Zeiger auf ihn (void*) übergeben werden.
Der Parameter kann von beliebigem Typ sein (Klasse oder einfacher Typ).
Der Parameter kann von beliebigem Typ sein (eine Klasse oder ein einfacher Typ).
template<typenname T>
void SendReceiveParam(T& param);
....
{
double dval = 10;
SendReceiveParam(dval);
int ival = 10;
SendenEmpfangenParam(ival)
...
// Verweis auf das Strukturobjekt
struct AAA { void operator=(int a) {} };
AAA struct_val;
SendReceiveParam(struct_val);
}
eine illegale über int-Zeiger schreiben?
Ich verstehe immer noch nicht, wie das Problem entstanden ist. Offensichtlich gibt es keine klare Formulierung dessen, was wir erreichen wollen, auch nicht im Beispiel.
Ich habe bereits zweimal geschrieben, dass wir versuchen, einen Zeiger auf int in void* Parameter zu übergeben.
( Die Optionen memcpy und Zwischenklasse wurden bereits vorgeschlagen, ich brauche sie nicht zu wiederholen).
Ich habe bereits zweimal geschrieben, dass wir versuchen, einen Zeiger auf int in void* Parameter zu übergeben.
(memcpy, Zwischenklassen-Optionen wurden bereits vorgeschlagen, sie müssen nicht wiederholt werden)
wo liegt das Problem, im rechtlichen Nichts:
template<typenname T>
void SendReceiveParam(T& param);
schön, aber es passt nicht.
es kann nicht NULL übergeben
Shit, zumindest in C-Syntax können wir ein Beispiel-Code, der in MQL als auch funktionieren sollte haben?
int a=10;
SendParam(&a);
SendParam(NULL);
int a=10;
SendParam(&a);
SendParam(NULL);
schön, aber es passt nicht.