Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/12/2014, 06:10
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Como verificar si un Arreglo esta vacio

Imagínate un arreglo de enteros... aunque no asignes ningún valor, el arreglo va a tener enteros en todas sus posiciones.... es lo que se conoce como basura. ¿Cómo determinas si el valor de un arreglo es válido o no? No puedes.

Aún inicializando el arreglo (el valor que se suele poner por defecto es 0). Si te encuentras un 0 en un momento dado, ¿podrías determinar si ese valor es válido o no? pues básicamente depende de si el 0 forma parte del rango válido de valores o no. En el caso más genérico, cualquier valor que te encuentres en el arreglo será válido.

¿Cual es la solución entonces?

Una de ellas es agrupar los valores válidos al inicio del arreglo y disponer de una variable entera que indique el número de posiciones del arreglo que tienen un valor válido:

Código C++:
Ver original
  1. struct Lista
  2. {
  3.   int* arreglo;
  4.   int numElementos;
  5.   int maxElementos;
  6. };

La tercera variable sirve para saber cuando el arreglo está lleno y no pasarse.

PD.: es responsabilidad del programador asignar los valores correctos a estas variables en todo momento, no hay ningún mecanismo en C que los vaya a rellenar por ti.

Un saludo.