Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
ci sono aree di memoria e ci sono puntatori ad aree di memoria memorizzate in altre aree di memoria
e poi c'è una gerarchia finché il cervello può percepire
Inoltre, anche gli inserti di montaggio sono molto usati.
Mi riprendo parzialmente, guarda dalle 18:00 , sì, non scrivono in asm, ma correggono il codice già compilato - allora è logico
per quanto ho capito quello che fanno i compilatori moderni con inserti assembler è solo un'imitazione di asm, cioè non è certo che l'inserimento asm in tale forma entrerà nel codice compilato, e per ottimizzare veramente in codice asm abbastanza per riscrivere sezioni di codice in asm nel debugger - imho
ci sono aree di memoria e ci sono puntatori ad aree di memoria memorizzate in altre aree di memoria
e poi c'è una gerarchia finché il cervello può percepire
Sì, ed è anche bello non tenere traccia del fatto che un collegamento sia vivo o meno e strisciare in una sezione di memoria rilasciata a lungo che è già usata da un altro processo e rompere tutto lì))))
Sì, ed è anche bello non tracciare quando un collegamento è vivo o no e strisciare in uno spazio di memoria rilasciato da tempo, che è già usato da un altro processo e rompere tutto lì))))
Che favola, questo era possibile solo in Windows 3.*. Windows non vi farà entrare nella memoria del processo di qualcun altro, ogni processo lavora nella propria area, e per esso l'indirizzamento della memoria inizia da zero, è così che gli viene presentato da Windows. E in generale, Windows alloca la memoria solo quando scrive davvero dei dati. Fate un array doppio arr[1024*1024*1024] e vedete quanta memoria è effettivamente allocata in Task Manager. Ma non del tutto! Finché non iniziate effettivamente a scrivere nell'array, la memoria non sarà allocata in pezzi da 4Kb. Anche se lo scrivete usando indici randomizzati, sarà comunque in tali pezzi. Come Windows virtualizza tutto questo è insondabile per me!
Come Windows virtualizza tutto questo è insondabile per me!
Non voglio cercarlo su Google, ma con l'avvento del Pentium-1 il processore ha descrittori di segmento di memoria e memoria virtuale, cioè molto probabilmente si tratta di virtualizzazione a livello hardware, e Windows la usa abilmente
Che favola, questo era possibile solo in Windows 3.*. Windows non vi farà entrare nella memoria del processo di qualcun altro, ogni processo lavora nella propria area, e per esso l'indirizzamento della memoria inizia da zero, è così che gli viene presentato da Windows. E in generale, Windows alloca la memoria solo quando scrive davvero dei dati. Fate un array doppio arr[1024*1024*1024] e vedete quanta memoria è effettivamente allocata in Task Manager. Ma non del tutto! Finché non iniziate effettivamente a scrivere nell'array, la memoria non sarà allocata in pezzi da 4Kb. Anche se lo scrivete usando indici randomizzati, sarà comunque in tali pezzi. Come Windows virtualizza tutto questo è insondabile per me!
Tre non aveva la virtualizzazione, è un sistema diverso, non NT. C'erano un sacco di code DOS, metà delle funzioni del sistema erano incardinate sull'int 21.
Questo caso non è chiaro:
Inoltre, nella f-i c'è un cambiamento nella dimensione della matrice M:
Cioè, da quanto ho capito, tutto questo casino serve solo per allocare la memoria per la matrice, ma non viene riempita con nessun valore? Così, questo codice può essere buttato fuori per mql (bene, dopo aver determinato il numero di righe e lo stesso numero di colonne della matrice quadrata)
o la matrice è inizializzata con alcuni valori
...Come il sistema del vento virtualizza tutto questo è insondabile per me!
Leggi Richter. Ha masticato tutto fino a farti male al cuore.
SeriousRacoon:
A proposito, buco interessante, dovrò vedere se è possibile far crashare il server in questo modo
Non si può.
Questo caso non è chiaro:
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)); а здесь идет просто выделение памяти для матриы М?
Inoltre, nella f-i c'è un cambiamento nella dimensione della matrice M:
Cioè, da quanto ho capito, tutto questo casino serve solo per allocare la memoria per la matrice, ma non viene riempita con nessun valore? Così, questo codice può essere buttato fuori per mql (bene, dopo aver determinato il numero di righe e lo stesso numero di colonne della matrice quadrata)
o, dopo tutto, la matrice è inizializzata con alcuni valori
Inmine_score*m è un puntatore a int, e il commento dice che è un array, quindi ogni riga ha un numero diverso di colonne, si chiama "array a pettine" non rettangolare.
score->m = (int *) malloc(score->n * sizeof(int))
Alloca semplicemente la memoria per questo array di lunghezze di righe, nessun valore
Per la matrice M stessa.
qui viene allocata la memoria per i puntatori delle righe
score->M[i] = (double *) malloc ((score->m[i]) * sizeof(double)); а здесь идет просто выделение памяти для матриы М?
e qui per le colonne