Memoria Dinamica

Solo disponible en BuenasTareas
  • Páginas : 6 (1368 palabras )
  • Descarga(s) : 0
  • Publicado : 1 de marzo de 2013
Leer documento completo
Vista previa del texto
1. Explique los arreglos bidimensionales

Un arreglo bidimensional como su nombre lo dice es un arreglo de dos dimensiones el cual es declarado mediante dos corchetes Tipo nombre [filas][columnas], comúnmente se utilizan para operar matrices y al igual que un arreglo unidimensional, para tener acceso a este se hace a través de sus índices, los cuales también inician desde 0.
Comúnmente serecorren a través de ciclos iterativos for.

2. Explique qué es y para que se utiliza la memoria dinámica.

Es un tipo de memoria que al igual que la estática se reserva para guardar valores o direcciones de diferentes tipos de variables, se utiliza por que puede variar su tamaño durante la ejecución del programa y esto es una gran ventaja cuando no se sabe del número de elementos o datos que sevallan a ingresar, el inconveniente de usarla es que es más lenta en comparación con la estática.

3. Explique las siguientes funciones: malloc(), calloc(), realloc(), free().

• malloc()

Es una función la cual reserva un bloque de memoria y devuelve un puntero vacío al inicio de la misma se define de la siguiente forma:

void *malloc(size_t size)

size especifica el número de bytes areservar.

• calloc()

Es una función parecida a malloc, pero además de reservar memoria, inicializa a 0 la memoria reservada. Se usa comúnmente para arreglos y matrices y se define de la siguiente forma

void *calloc(size_t nmemb, size_t size);

nmemb indica el número de elementos a reservar y size el tamaño de cada elemento

• realloc()

La función realoc redimensiona al espacioasignado de forma dinámica anteriormente a un puntero y se define de la siguiente forma.

void *realloc(void *prt, size_t size);

Donde pt res el puntero a redimensionar y size el Nuevo tamaño en bytes que tendrá, al usar esta función se deberá usar un puntero temporal, de lo contrario se podría tener una fuga de memoria.

• free()

Esta función sirve para liberar memoria que se asignódinámicamente. Si el puntero no es nulo, free no hace nada y se define de la siguiente forma.

void free(void *prt);

El parámetro ptr es el puntero a la memoria que se desea liberar.

4. Explique los comandos en la línea de argumentos y las variables argv y argc de la función main().
Existe una forma de transmitir al programa los argumentos de la línea de comando, o parámetros, cuando comienzala ejecución
Cuando se invoca el main() se le puede pasar dos argumentos, (los nombres son por convención):
1. argc es el número de argumentos en la línea de comandos
2. argv[] es un apuntador a un arreglo de cadena de caracteres que contienen los argumentos, uno por cadena.
Ejemplo de uso:
main( int argc, char *argv[])
{int i;

for (i=0; i!argc; i++)
printf(''Argumento %d :'' %s'',);
}
Ya que el primer elemento del arreglo, ( *argv[] ) apunta a la cadena que contiene el nombre del comando, argc es al menos igual a 1.
Esta estructura de datos es creada por elsistema operativo, (Unix u otro), por lo que la única preocupación del programador es usarla, no generarla.
Ambas variables contienen la información de los argumentos que se enviaron al programa cuando se indicó su ejecución desde la línea de comandos.
El primero de los parámetros es argc y es un entero, cuyo valor es el número elementos utilizados durante la llamada del programa, esto quiere decir,que también se incluye el nombre del programa, tal y como fue llamado.
El segundo es un arreglo de char* el cual contiene el valor de cada argumento pasado al programa.
5. Explique que son los archivos y para que se utilizan.
Un archivo o fichero, es un conjunto de datos que se encuentran almacenados en memoria secundaria y se distingue a través de un nombre. A diferencia de los arreglos y...
tracking img