Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
il existe des zones de mémoire et des pointeurs vers des zones de mémoire stockées dans d'autres zones de mémoire.
et ensuite il y a une hiérarchie aussi longtemps que le cerveau peut percevoir
En outre, les inserts d'assemblage sont également très utilisés.
Je retire partiellement ce que j'ai dit, regardez à partir de 18:00, oui, ils n'écrivent pas en asm, mais corrigent le code déjà compilé - alors c'est logique.
d'après ce que j'ai compris, ce que font les compilateurs modernes avec des insertions en assembleur n'est qu'une imitation de l'asm, c'est-à-dire qu'il n'est pas certain que l'insertion asm sous cette forme se retrouve dans le code compilé, et pour vraiment optimiser dans le code asm il suffit de réécrire les sections de code en asm dans le debugger - imho
il existe des zones de mémoire et des pointeurs vers des zones de mémoire stockées dans d'autres zones de mémoire.
et ensuite il y a une hiérarchie aussi longtemps que le cerveau peut percevoir
Ouais, et c'est aussi cool de ne pas garder la trace de savoir si un lien est vivant ou non et de ramper dans une section de mémoire libérée depuis longtemps qui est déjà utilisée par un autre processus et de tout casser là)))).
Ouais, et c'est aussi cool de ne pas suivre quand un lien est vivant ou non et de ramper dans un espace mémoire libéré depuis longtemps, qui est déjà utilisé par un autre processus et de tout casser là)))).
Quel conte de fées, cela n'était possible que dans Windows 3.*. Windows ne vous laissera pas accéder à la mémoire de quelqu'un d'autre, chaque processus travaille dans sa propre zone, et pour lui l'adressage de la mémoire commence à zéro, c'est ainsi qu'il est présenté par Windows. Et en général, Windows n'alloue de la mémoire que lorsqu'il écrit réellement des données. Faites un tableau double arr[1024*1024*1024] et voyez combien de mémoire est réellement allouée dans le Gestionnaire des tâches. Mais pas du tout ! Tant que vous ne commencerez pas à écrire dans le tableau, la mémoire ne sera pas allouée par tranches de 4Kb. Même si vous l'écrivez en utilisant des indices aléatoires, il sera toujours dans de tels morceaux. Comment Windows virtualise tout cela me paraît insondable !
Comment Windows virtualise tout cela me paraît insondable !
Je n'ai pas envie de chercher sur Google, mais depuis l'avènement du Pentium-1, le processeur dispose de descripteurs de segments de mémoire et de mémoire virtuelle, c'est-à-dire qu'il s'agit très probablement d'une virtualisation au niveau du matériel, et Windows l'utilise habilement.
Quel conte de fées, cela n'était possible que dans Windows 3.*. Windows ne vous laissera pas accéder à la mémoire de quelqu'un d'autre, chaque processus travaille dans sa propre zone, et pour lui l'adressage de la mémoire commence à zéro, c'est ainsi qu'il est présenté par Windows. Et en général, Windows n'alloue de la mémoire que lorsqu'il écrit réellement des données. Faites un tableau double arr[1024*1024*1024] et voyez combien de mémoire est réellement allouée dans le Gestionnaire des tâches. Mais pas du tout ! Tant que vous ne commencerez pas à écrire dans le tableau, la mémoire ne sera pas allouée par tranches de 4Kb. Même si vous l'écrivez en utilisant des indices aléatoires, il sera toujours dans de tels morceaux. Comment Windows virtualise tout cela me paraît insondable !
Trois n'avait pas la virtualisation, c'est un système différent, pas NT. Il y avait beaucoup de queue de DOS là-dedans, la moitié des fonctions du système dépendaient de l'int 21.
Ce cas n'est pas clair :
En outre, dans le f-i, la taille de la matrice M est modifiée :
Autrement dit, si je comprends bien, tout ce bazar ne sert qu'à allouer de la mémoire pour la matrice, mais celle-ci n'est remplie d'aucune valeur ? Donc, ce code peut être jeté pour mql (enfin, après avoir déterminé le nombre de lignes et le même nombre de colonnes de la matrice carrée)
ou la matrice est initialisée avec des valeurs
...Comment le système éolien virtualise tout cela est insondable pour moi !
Lis Richter. Il a tout mâché au point de te faire mal au cœur.
SeriousRacoon:
Au fait, c'est un trou intéressant, je vais devoir voir s'il est possible de faire planter le serveur de cette façon.
Tu ne peux pas.
Ce cas n'est pas clair :
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)); а здесь идет просто выделение памяти для матриы М?
De plus, il y a un changement dans la taille de la matrice M dans le f-i :
Autrement dit, si je comprends bien, tout ce bazar ne sert qu'à allouer de la mémoire pour la matrice, mais celle-ci n'est remplie d'aucune valeur ? Donc, ce code peut être jeté pour mql (enfin, après avoir déterminé le nombre de lignes et le même nombre de colonnes de la matrice carrée)
ou, après tout, la matrice est initialisée avec des valeurs
Dansmine_score*m est un pointeur vers int, et le commentaire dit que c'est un tableau, donc chaque ligne a un nombre différent de colonnes, c'est appelé un "tableau en peigne" pas rectangulaire.
score->m = (int *) malloc(score->n * sizeof(int))
Il alloue simplement de la mémoire pour ce tableau de longueurs de lignes, sans aucune valeur.
Pour la matrice M elle-même.
ici est allouée la mémoire pour les pointeurs des lignes
score->M[i] = (double *) malloc ((score->m[i]) * sizeof(double)); а здесь идет просто выделение памяти для матриы М?
et ici pour les colonnes