Espero que se me venga a la cabeza algunas que otras locuras, pero esto esto es algo que me llamó un tanto la atención.
Desconozco cómo funcióna Linux y c++ en cuanto a las violaciónes de memoria.
Es más que obvio que si declarásemos un vector de 2 elementos, el elemento de la tercer posición no debería de ser accesible ya que podría haber sido reservado para algún programa, o bien ser un cacho de códigos de CS de éste.
Para ver que pasaba, hice un programa que a continuación se los detallo (un programa más que simple).
Al ejecutar esta cosa me da lo siguiente al final:
De forma clara se puede observar que en ninguna ejecución llega a desplazarse 40000 octetos (10000 * sizeof (int)). Asimismo cada número es par y según mis cálculos, no necesariamente son potencias de 2.
Al parecer, Linux es muy permisivo en cuanto a la asignación de valores en posiciones no reservadas para el programa.
Desconozco cómo funcióna Linux y c++ en cuanto a las violaciónes de memoria.
Es más que obvio que si declarásemos un vector de 2 elementos, el elemento de la tercer posición no debería de ser accesible ya que podría haber sido reservado para algún programa, o bien ser un cacho de códigos de CS de éste.
Para ver que pasaba, hice un programa que a continuación se los detallo (un programa más que simple).
- Genero un vector de enteros de 2 elementos -> vector[0] y vector[1].
- Voy a la posición n (n == 0~10000).
- Por cada posición escrita, la pongo en cero y muestro cuál fué.
- ... vector [2536]
- ... vector [568]
- ... vector [1656]
- ... vector [1564]
- ... vector [1644]
- ... vector [1636]
- ... vector [844]
- ... vector [2244]
- ... vector [1604]
- ... vector [2372]
De forma clara se puede observar que en ninguna ejecución llega a desplazarse 40000 octetos (10000 * sizeof (int)). Asimismo cada número es par y según mis cálculos, no necesariamente son potencias de 2.
Al parecer, Linux es muy permisivo en cuanto a la asignación de valores en posiciones no reservadas para el programa.
0 comentarios:
Publicar un comentario
Dejanos tu comentario