Primero voy a introducir: Estoy intentando imitar la clase string a modo de ejercicio. Pues bien, en el constructor está pasado algo solo descriptible a través de la salida (está debajo del código).
Código
String::String(const char *init_value) {
unsigned int num_characters = 0;
while(init_value[num_characters] != (char)NULL)
num_characters += 1;
_num_characters = num_characters;
_value = (char *)malloc(num_characters + 1);
_value[num_characters] = (char)0;
while(--num_characters >= 0) {
printf("%d ", num_characters); // _value[num_characters] = init_value[num_characters];
}
}
Pues bien, la salida es la siguiente:
3 2 1 0 -1 -2 -3 -4 //... y así hasta el infinito
(El comentario no está en la salida, solo es para aclarar)
Como ven, aunque num_characters valga menos de 0, el while se sigue repitiendo...
Espero que sea error del compilador, porque si no yo sería muy tonto


 
  




 Autor
 Autor
		



 En línea
									En línea
								






