Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

19 Días
7 Hrs
2 Min
31 Seg

El manejo de memoria

1/16
Recursos
Transcripción

Aportes 17

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

esto va a estar buenisimo

Cuando hablemos del manejo de memoria en las computadoras, debemos tener en cuenta estos dos componentes:

  • CPU: Realiza todas aquellas actividades logica, matematicas y de control. En otras palabras, es el cerebro de nuestra computadora
  • RAM: Es el lugar donde se almacena todos los datos que esten relacionado con nuestro programa, desde el codigo que se va a ejecutar hasta las variables a utilizar a lo largo de la ejecucion

Estos dos componentes se comunicarán entre si de manera constante. La RAM almacena la información a ejecutar y el CPU es quien lee esa información y la ejecuta

Segmentacion de la memoria

La RAM tiene una tarea mucho más especifica, que es la memoria de segmentacion. Nuestro sistema operativo lo que hace es gestionar los recursos en nuestra computadora, y cuando comienza nuestro programa a ejecutarse, el sistema operativo crea un espacio en la memoria para que pueda ejecutar dicho programa

Secciones en la Segmentacion de la memoria:

  • Codigo ejecutable: Donde se almacenan las instrucciones del programa
  • Literales no ejecutables: Las variables que no cambian en el transcurso de todo el programa, son almacenadas en esta seccion.
//Ejemplo 1
cout << "Hola mundo";

//Ejemplo 2
char dorime[6] = 'Dorime';
cout << dorime;

  • Variables declaradas. En esta seccion se encuentran los datos estaticos. Aquí, las variables declaradas (tipo entero, caracter, cadena de texto fijos) van a reservar su espacio en esta seccion. Esto se debe a que nuestro compilador crea un espacio de memoria donde podemos almacenar variables fijas y con un tamaño definido
  • Memoria Dinamica: Aca podemos encontrar la memoria Heap y la memoria en pila
    • Heap: Se almacena toda la memoria dinamica y es controlado por el programador.
    • memory Stack: Es gestionado por el compilador, el cual mantiene la informacion de memoria de donde se llamo la funcion y los datos que se van almacenando dentro del stack

Acerca del Desbordamiento de Datos…
Un desbordamiento de búfer (buffer overflow o buffer overrun) es un error de software que se produce cuando un programa no controla adecuadamente la cantidad de datos que se copian sobre un área de memoria reservada.

Si la cantidad es superior a la capacidad preasignada, los bytes sobrantes se almacenan en zonas de memoria adyacentes, sobrescribiendo su contenido original, y que probablemente pertenecían a datos o código almacenados en memoria. Esto constituye un fallo de programación.

Pueden revisar más en Wikipedia Desbordamiento de bufer 👀

La presentación del video la pueden encontrar aquí 😃

no se nada de c++, estoy estudiandoo js, apenas se de POO.
pero, me dio curiosidad ver como funciona todo en c++, asi que. Veremos que sucede ajaj

Dejo el link del proyecto del github de la profesora para lo que tengan errores o quieran analizar el codigo:

Enlace

En la edicion se quedo la diapositiva de manejo de memoria punteros.
No se ven la memoria stack, heap o static en la diapositiva. 😃

asta que veo que alguien explica bien lo que son punteros

Muy contento de seguir aprendiendo en este maravilloso camino a convertirme en programador!!

Muy buena introducción!

bool **womanBody**; bool **womanVoice**; if (**womanBody** == true && **womanVoice** == false) {     cout << "Salga de allí soldado"; } else {     cout << "A darle átomos"; }
```txt bool womanBody; bool womanVoice; if (womanBody == true && womanVoice == false) {     cout << "Salga de allí soldado"; } else {     cout << "A darle átomos"; } ```
```js bool womanBody; bool womanVoice; if (womanBody == true && womanVoice == false) {     cout << "Salga de allí soldado"; } else {     cout << "A darle átomos"; } ```
```js bool womanBody; bool womanVoice; if (womanBody == true && womanVoice == false) {     cout << "Salga de allí soldado"; } else {     cout << "A darle átomos"; } ```bool womanBody; bool womanVoice; if (womanBody == true && womanVoice == false) {     cout << "Salga de allí soldado"; } else {     cout << "A darle átomos"; }
bool womanBody; bool womanVoice; if (womanBody == true && womanVoice == false) { cout << "Salga de allí soldado"; } else { cout << "A darle átomos"; }

Memory overflow ocurre cuando el Heap y el Stack colisionan (respecto a las direcciones de memoria).