Está en la página 1de 2

Un arreglo es un objeto que sirve para almacenar un conjunto de valores del mismo tipo.

Su declaracin es: tipoVariable nombreVariable[]; Su creacin es similar a la creacin de un objeto comn, pero se debe especificar adems la cantidad de elementos: tipoVariable nombreVariable[cantidad]; Por ejemplo, si se desea guardar en el arreglo v las votaciones de 8 candidatos la declaracin debe ser hecha de la siguiente manera: int v[8]; v = new int [8]; Los arreglos tienen adems una fuerte relacin con los punteros, puesto que son reas en la memoria a las cuales son apuntados. Por ejemplo el mismo arreglo anterior se puede declarar de la siguiente manera: int *v; v = (int *) malloc (sizeof(int) * 8); Lo que se traduce en la creacin de un objeto de 8 elementos enteros que es apuntado (referenciado por v). Malloc se utiliza para pedir memoria, es decir, C le dice al computador necesito x celdas de memoria, en este caso son 8 celdas para almacenar enteros: Cada elemento se referencia con el nombre del arreglo y un ndice entero. El rango de los ndices va de 0 a cantidad-1. Por ejemplo, para hacer referencia al valor del cuarto elemento de v hay que escribir v[3]. El indice dentro de los parntesis cuadrados puede ser cualquier expresin entera que este dentro del rango [0, cantidad1]. Memoria Dinmica: La funcin bsica es malloc, que reserva unr espacio de memoria del tamao que se le indique (en bytes) y retorna un puntero. Siempre hay que anteponerle un cast a la llamada, para que el tipo del puntero retornado se adapte a lo que se espera. #include <stdlib.h> char *s; s = (char *)malloc(100); /* reserva un rea de 100 bytes */ Para pedir espacio para un arreglo hay dos alternativas. Una es usar malloc y calcular "a mano" el espacio total requerido. Por ejemplo,

p = (int *)malloc(100*sizeof(int)); /* p apunta a un arreglo de 100 int's */ La otra forma es usar otra funcin, calloc, que tiene dos parmetros (nmero de celdas y tamao de cada celda):

p = (int *)calloc(100, sizeof(int)); /* p apunta a un arreglo de 100 int's */ Un efecto lateral de calloc es que inicializa en cero la memoria que entrega. Al terminar de usar un rea de memoria pedida dinmicamente, se le debe retornar al sistema usando

free(p);donde p apunta al principio del rea que se libera. Estructuras: Conjunto de datos o variables de diferentes tipos. Estos datos o variables no se referencia bajo un mismo nombre, el nombre de la estructura es un nuevo tipo de dato definido por el usuario. Definicin Struct [nombre de estructura] { tipo variable1;

tipo variable2; tipo variablen } variables de tipo estructura; Para acceder a elementos de una estructura se utiliza el operador (.) y el operador apuntador de una estructura (->), tambin llamado operador flecha. Arreglos de estructuras struct nombre_struct variable_tipo_struct[100]; #include<stdio.h> //librerias int main(int argc, char*argv[]) //funcion principal

{ int arreglo[5]={1,2,3,4,5};//declaramos la variable arreglo de 5 elemetos int *apuntador; //declaramos la variable apuntador int valor=0, i=0; //declaramos la variable valor=0 e i=0 printf("Aritmetica de apuntadores de aqrreglos\n\n"); //encabezado apuntador= &arreglo[0];//*apuntador apunta a la deireccion del elemento arreglo[0] apuntador=arreglo; //otra forma de pasar la direccion //a valor se le asigna el contenido de apuntador (el elemento 0 de arreglo) valor=*apuntador; //se imprime el valor de apuntador printf("El elemento 0 de arreglo usando apuntador es: %d", valor); //recorriendo arreglo con ciclo for for(i=0; i<5; i++) { //apuntador printf("\n\tEl elemento [%d]: %d", i, *(apuntador + i)); } //Cambiar el valor del elemento arreglo[2] con apuntador *(apuntador+2)=100; //recorriendo arreglo con ciclo for for(i=0; i<5; i++) { //apuntador con un cambio diferente printf("\n\tEl elemento[%d]: %d", i, *(apuntador +i)); } getchar(); //congela la pantalla return 0; //devuelve al valor entero requerido en la funcion principal }

También podría gustarte