Una Estructura es:
una colección de variables simples, que pueden contener diferentes tipos de datos. Es un tipo de dato definido por el usuario. Son también conocidas como Registros. Ayudan a organizar y manejar datos complicados en programas debido a que agrupan diferentes tipos de datos a las que se les trata como una sola unidad en lugar de ser vistas como unidades separadas.
La Declaración de estructuras:
en programas C es un nuevo tipo de datos denominado tipo Estructura y declarar una variable de este tipo.
En la definición del tipo de estructura, se especifican los elementos que la componen así como sus tipos. Cada elemento es llamado miembro (similar a un campo de un registro).
programa de un estructura (codigi fuente):
#include<iostream>
#include<conio.h>
using namespace std;
struct alumno //aqui se declara la estructura llamada alumno
{
char nombre[15]; //se declaran las variables de la estructura
int matricula;
int cal1,cal2,cal3,prom;
void datos() //dentro de la estrucctura se hace una funcion donde se van a pedir los datos del alumno
{
cout<<"escribe la matricula"<<endl;
cin>>matricula;
cout<<"escribe el nombre"<<endl;
cin>>nombre;
cout<<"escribe la calificacion 1"<<endl;
cin>>cal1;
cout<<"escribe la calificacion 2"<<endl;
cin>>cal2;
cout<<"escribe la calificacion 3"<<endl;
cin>>cal3;
prom=(cal1+cal2+cal3)/3;
}
void imprimir() //se hace otra funcion donde se van a imprimir los datos del alumno
{
cout<<"la matricula es "<< matricula<<endl;
cout<<"el nombre es "<< nombre<<endl;
cout<<"el promedio es "<< prom<<endl;
}a;
int main() //dentro del main se van a instanciar los datos y la impresion que se hizo en la estructura
{
a.datos();
a.imprimir();
getch();
return 0;
}
viernes, 19 de noviembre de 2010
Asignación dinámica de memoria
Asignación dinámica de memoria: new y delete
En C la asignación dinámica de memoria se manipula con las funciones malloc() y free(). En C++ se define un método de hacer asignación dinámica utilizando los operadores new y delete.
El operador new está disponible directamente en C++, de modo que no se necesita utilizar ningún archivo de cabecera; new se puede utilizar con dos formatos:new tipo // asigna un único elemento
new tipo[num_eltos] // signa un array
Si la cantidad de memoria solicitada no está disponible, el operador new proporciona el valor 0. El operador delete libera la memoria signada con new.delete variable
delete [n] variable
delete [n] variable
new es superior a malloc por tres razones:
1.- new conoce cuánta memoria se asigna a cada tipo de variable.
2.- malloc() debe indicar cuánta memoria asignar.
3.- new hace que se llame a un constructor para el objeto asignado y malloc no puede.
1.- new conoce cuánta memoria se asigna a cada tipo de variable.
2.- malloc() debe indicar cuánta memoria asignar.
3.- new hace que se llame a un constructor para el objeto asignado y malloc no puede.
delete produce una llamada al destructor en este orden:
1. Se llama al destructor
2. Se libera memoria
1. Se llama al destructor
2. Se libera memoria
delete es más seguro que free() ya que protege de intentar liberar memoria apuntada por un puntero nulo.
Bibliografía de la investigación:
código fuente del programa:
#include<iostream.h>
#include<conio.h>
int main(void)
{
clrscr();
int *vector, tm;
int indice=0,i;
#include<conio.h>
int main(void)
{
clrscr();
int *vector, tm;
int indice=0,i;
cout<<"Ingrese el numero de elementos:";
cin>>tm;
cin>>tm;
vector = new int[tm];//asignacion dinamica de memoria.
for(indice=0;indice<tm;indice++)
{
cout<<"Introduzca un vector["<<indice + 1<<"]:";
cin>>vector[indice];
{
cout<<"Introduzca un vector["<<indice + 1<<"]:";
cin>>vector[indice];
}
for(i=0;i<tm;++i)
{
cout<<vector[i]<<endl;
}
for(i=0;i<tm;++i)
{
cout<<vector[i]<<endl;
}
return 0;
}
}
En este programa se le pide al usuario que inserte el número de elementos que va a tener su vector y con el oprador NEW sele asigna el valor a cada elemento del vector, después con un ciclo for se imprime en pantalla el valor que se le asigno al elemento.
Suscribirse a:
Comentarios (Atom)