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
es gibt Speicherbereiche und es gibt Zeiger auf Speicherbereiche, die in anderen Speicherbereichen gespeichert sind
und dann gibt es eine Hierarchie, solange das Gehirn wahrnehmen kann
Außerdem werden auch Assembler-Einsätze sehr häufig verwendet.
Ich nehme es teilweise zurück, siehe ab 18:00, ja, sie schreiben nicht in asm, sondern korrigieren bereits kompilierten Code - dann ist es logisch
Soweit ich verstehe, ist das, was moderne Compiler mit Assembler-Einschüben tun, nur eine Imitation von asm, d.h. es ist nicht sicher, dass asm-Einschübe in dieser Form in den kompilierten Code gelangen, und um asm-Code wirklich zu optimieren, reicht es, Codeabschnitte in asm im Debugger umzuschreiben - imho
es gibt Speicherbereiche und es gibt Zeiger auf Speicherbereiche, die in anderen Speicherbereichen gespeichert sind
und dann gibt es eine Hierarchie, solange das Gehirn wahrnehmen kann
Ja, und es ist auch cool, nicht zu verfolgen, ob ein Link lebendig ist oder nicht und in einen lange freigegebenen Speicherbereich zu kriechen, der bereits von einem anderen Prozess verwendet wird und dort alles kaputt zu machen))))
Ja, und es ist auch cool, nicht zu verfolgen, wenn ein Link lebendig ist oder nicht und kriechen in eine lange freigegebenen Speicherplatz, die bereits von einem anderen Prozess verwendet wird und brechen alles dort))))
Was für ein Märchen, das war nur in Windows 3.* möglich. Windows lässt Sie nicht in den Speicher eines anderen Prozesses, jeder Prozess arbeitet in seinem eigenen Bereich, und für ihn beginnt die Speicheradressierung bei Null, so wird es ihm von Windows präsentiert. Und im Allgemeinen weist Windows nur dann Speicher zu, wenn wirklich Daten geschrieben werden. Erstellen Sie ein Array double arr[1024*1024*1024] und sehen Sie im Task-Manager nach, wie viel Speicher tatsächlich zugewiesen ist. Aber nicht doch! Bis Sie tatsächlich mit dem Schreiben in das Array beginnen, wird der Speicher nicht in 4Kb-Blöcken zugewiesen. Selbst wenn Sie sie unter Verwendung von zufälligen Indizes schreiben, werden sie immer noch in solchen Chunks sein. Wie Windows das alles virtualisiert, ist mir schleierhaft!
Wie Windows das alles virtualisiert, ist mir schleierhaft!
Ich will es nicht googeln, aber mit der Einführung des Pentium-1 verfügte der Prozessor über Speichersegment-Deskriptoren und virtuellen Speicher, d.h. es handelt sich höchstwahrscheinlich um eine Virtualisierung auf Hardware-Ebene, und Windows nutzt sie geschickt
Was für ein Märchen, das war nur in Windows 3.* möglich. Windows lässt Sie nicht in den Speicher eines anderen Prozesses, jeder Prozess arbeitet in seinem eigenen Bereich, und für ihn beginnt die Speicheradressierung bei Null, so wird es ihm von Windows präsentiert. Und im Allgemeinen weist Windows nur dann Speicher zu, wenn wirklich Daten geschrieben werden. Erstellen Sie ein Array double arr[1024*1024*1024] und sehen Sie im Task-Manager nach, wie viel Speicher tatsächlich zugewiesen ist. Aber nicht doch! Bis Sie tatsächlich mit dem Schreiben in das Array beginnen, wird der Speicher nicht in 4Kb-Blöcken zugewiesen. Selbst wenn Sie sie unter Verwendung von zufälligen Indizes schreiben, werden sie immer noch in solchen Chunks sein. Wie Windows das alles virtualisiert, ist mir schleierhaft!
Drei hatten keine Virtualisierung, es ist ein anderes System, nicht NT. Es gab eine Menge DOS-Schwänze darin, die Hälfte der Systemfunktionen hing an int 21.
Dieser Fall ist nicht eindeutig:
Außerdem ändert sich in der f-i die Größe der Matrix M:
Das heißt, wie ich es verstehe, ist all dieses Chaos nur für die Zuweisung von Speicher für die Matrix, aber es ist nicht mit irgendwelchen Werten gefüllt? Dieser Code kann also für mql verwendet werden (nachdem man die Anzahl der Zeilen und die gleiche Anzahl der Spalten der quadratischen Matrix bestimmt hat)
oder die Matrix wird mit einigen Werten initialisiert
...Wie das Windsystem dies alles virtualisiert, ist mir schleierhaft!
Lesen Sie Richter. Er hat alles so weit zerkaut, dass es dir das Herz bricht.
SeriousRacoon:
Übrigens, interessantes Loch, ich muss mal sehen, ob es möglich ist, den Server auf diese Weise zum Absturz zu bringen
Das können Sie nicht.
Dieser Fall ist nicht eindeutig:
score->n = MAX((int) floor(B/2.0), 2) - 1; задали кол-во строк, ок score->m = (int *) malloc(score->n * sizeof(int)); а кол-во столбцов тут чему равно? кол-ву строк?
score->M[i] = (double *) malloc ((score->m[i]) * sizeof(double)); а здесь идет просто выделение памяти для матриы М?
Außerdem ändert sich die Größe der Matrix M in der f-i:
Das heißt, wie ich es verstehe, ist all dieses Chaos nur für die Zuweisung von Speicher für die Matrix, aber es ist nicht mit irgendwelchen Werten gefüllt? Dieser Code kann also für mql verwendet werden (nachdem man die Anzahl der Zeilen und die gleiche Anzahl der Spalten der quadratischen Matrix bestimmt hat)
oder schließlich wird die Matrix mit einigen Werten initialisiert
Inmine_score ist *m ein Zeiger auf int, und der Kommentar besagt, dass es sich um ein Array handelt, d.h. jede Zeile hat eine andere Anzahl von Spalten, es wird als "comb array" bezeichnet und nicht als rechteckig.
score->m = (int *) malloc(score->n * sizeof(int))
Es wird lediglich Speicher für dieses Array von Zeilenlängen zugewiesen, keine Werte
Für die Matrix M selbst.
hier wird Speicher für Zeiger auf Zeilen zugewiesen
score->M[i] = (double *) malloc ((score->m[i]) * sizeof(double)); а здесь идет просто выделение памяти для матриы М?
und hier für Spalten