[C con Clase] limites de vectores.

Jorge Vega Sanchez memmaker650 en gmail.com
Lun Jun 21 19:29:32 CEST 2010


Buenas, esta tarde haciendo unas pruebas para una cosa que teng que implementar me he llevado una sorpresa bastante grande.
Estaba definiendo vectores, de la forma "normal" y luego con new y cual ha sido mi sorpresa de que puedo visualizar y asignar valores fuera del rango del vector.

Es decir si defino un vector/array de tamaño 10, puedo imprimir por pantalla en valor de la posición 12. Pensaba que daría error o que saldría un valor extraño pero no.

Me gustaría saber si hay alguna forma de que de error sin tener que controlar nosotros que estamos dentro de rango. Es decir si me he dejado algo. Por cierto he leido información sobre la variables size_t que se supone que se usan para controlar tamaños de vectores y cosas similares. Pero en casos como el que pongo no tengo ni idea de como incluirlo.

#include <iostream>

using namespace std;

int main ()
{
	// Vector definido a la manera tradicional
	int array[10];
	
	cout << " Prueba de vector " << endl;
	array[4]=567;
	for (int c=0; c<15; c++) 
	{
		cout << array[c] << endl;
	}
	// ============
	cout << "SEPARACION" << endl << endl;
	// Vector definido con NEW
	int *vector;
	vector= new int[10];
	
	vector[4]=69;
	
	for (int j=0; j<15; j++) 
	{
		cout << vector[j] << endl;
	}
	
	delete(vector);
	
	return 0;
	
}

Un saludo.





Más información sobre la lista de distribución Cconclase