About this entry
You’re currently reading the article “Punteros con C++ (Pointers in C++, Spanish only).”
- Published:
- October 4th 06:17 AM
- Updated:
- June 11th 05:58 AM
- Sections:
- Tutorial de C y C++
Punteros con C++ (Pointers in C++, Spanish only)
El siguiente articulo presenta una introducción a punteros en C++ e ilustra su uso en la construcción de listas simplemente enlazadas y doblemente enlazadas.
Liked it? !
Antes de leer este artículo se recomienda haber leído Introducción a C++.
Índice
-
Manejo de Memoria
En C++ puede asignarse memoria utilizando new y liberarse mediante delete.
- New: es un operador que devuelve un puntero a la memoria asignada
dinámicamente, que debe ser suficientemente grande como para contener al objeto de tipo
type.
Sintaxis
p-var=new type; - Delete: libera la memoria
Sintaxis
delete p-var;
- New: es un operador que devuelve un puntero a la memoria asignada
dinámicamente, que debe ser suficientemente grande como para contener al objeto de tipo
type.
Listas Simplemente Enlazadas
Escribir un programa para el mantenimiento de notas usando listas simplemente enlazadas.
struct nodo { int nota; struct nodo *siguiente; } cabeza; int ingreso (int n) { struct nodo *nuevo; if (!(nuevo=new struct nodo)) return 0; nuevo->nota=n; if (cabeza) nuevo->siguiente=cabeza; else nuevo->siguiente=NULL; cabeza->nuevo; return 1; } void desplegar (); { struct nodo *actual; actual=cabeza; while (actual) { cout << actual->nota << ´\n´; actual=actual->siguiente; } } void desplegar_rec (struct nodo *p) { if (p)cout << p->nota << '\n' desplegar_rec (p->siguiente); } void eliminar (struct nodo *p) { if (p) { eliminar (p->siguiente); delete p; } }Listas Doblemente Enlazadas
struct nododoble { int nota; struct nodo *siguiente, *anterior; } *cabeza=NULL; int ingreso (int n) { struct nododoble *nuevo; if (!(nuevo=new struct nododoble)) return 0; nuevo->nota=n; if (cabeza) { cabeza->anterior=nuevo; nuevo->siguiente=cabeza; } else nuevo->siguiente=NULL; cabeza->nuevo; nuevo->anterior=NULL; return 1; }Vectores Dinámicos
Para pedir memoria para mas de un elemento la sintaxis de new y delete cambia.
Nueva sintaxis:
p-var=new type[tamaño];
delete [tamaño]p-var; ó delete []p-var; // para un compilador reciente.Ejemplo:
main() { int *v; int n; cout << "Cuantas posiciones\n" cin << n; v=new int[n]; . . delete [n]v; }
Siguiente articulo que se recomienda leer: Objetos en C++.

2 comments
Jump to comment form | comments rss [?]