Programacion

Páginas: 2 (259 palabras) Publicado: 27 de septiembre de 2012
# include <iostream.h>
void eat_at_joes(int guacamole[])
{
guacamole[0] = 1;
guacamole[1] = 2;
guacamole[2] = 3;
}
main()
{
int taco[3];int nacho[2];
eat_at_joes(taco);
eat_at_joes(nacho);
}
Al definir la función, no hemos puesto ningún número entre los corchetes. Esto significa queestamos permitiendo que un array de cualquier tamaño pueda ser pasado a la función. En la función main, hemos declarado dos arrays de enteros, taco y nacho. Primeropasamos taco a la función, que en realidad es la direccion del array taco. Ahora bien, el segundo array, nacho, tiene sólo dos elementos. Cuando la funcióntrate de acceder al tercer elemento del array, que realmente no existe. Ya que los arrays son muchas variables almacenadas una detrás de otra en la memoria delordenador, tratará y accederá a la variable almacenada despueés del segundo elemento del array, que no existe.
Además, el programa compilará y correrá sinmensajes de error. Esto sucedía ya en C, que permite leer y escribir en la memoria del ordenador sin saber si realmente hay variables allí. Se deben evitarcasos como el del ejemplo, porque, o bien el programa correrá sin mensajes de error, o bien casca.
Una forma de evitarlo es añadiendo un segundo parámetro queindique el tamaño del array:
# include <iostream.h>
void eat_at_joes(int guacamole[], int size)
{
if (size > 0)
guacamole[0] = 1;
if (size >1)
guacamole[1] = 2;
if (size > 2)
guacamole[2] = 3;
}
main()
{
int taco[3];
int nacho[2];
eat_at_joes(taco,3);
eat_at_joes(nacho,2);
}
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programación
  • Programacion
  • Programacion
  • Programación
  • Programacion
  • Programacion
  • Programacion
  • Programacion

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS