Autor
|
Tema: Problema con realloc :( (Leído 2,572 veces)
|
sherry_XD
Desconectado
Mensajes: 5
|
Hola, estoy realizando un algoritmo en el cual necesito redimencionar una variable, buscando en internet llegue a realloc, pero al ejecutar el algoritmo, luego de agregar 2 espacios nuevos a la variable me arroja el siguiente error (con otras cosas mas feas .-.):
*** glibc detected *** ./a.out: realloc(): invalid next size: 0x0902d2d8 ***
La verdad no entiendo que pasa, ojalá alguien se apiade de mi alma y me pueda explicar el error.
Algo así esta la parte donde uso realloc:
variable = (tipo_variable *)realloc( variable ,sizeof(tipo_variable)*(nro_elementos + 1));
|
|
|
En línea
|
|
|
|
engel lex
|
puede ser que estés corrompiendo la data o alterando incorrectamente la variable, puedes publicar tu código más completo? (cuando lo publiques usa las etiquetas GeSHi que está arriba de los emoticones a la derecha)
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
sherry_XD
Desconectado
Mensajes: 5
|
void h::insertar(nodo n){ a= (nodo *)realloc(a,sizeof(nodo)*(cantidad + 1)); cantidad++; a[cantidad] = n; return; }
h es una clase: class h{ int cantidad; nodo *a; public: h(); void insertar(nodo a); };
|
|
« Última modificación: 4 Julio 2014, 07:14 am por sherry_XD »
|
En línea
|
|
|
|
engel lex
|
inicializaste cantidad y a? modificado--------------- XD ya vi el error! XD void h::insertar(nodo n){ a= (nodo *)realloc(a,sizeof(nodo)*(cantidad + 1)); cantidad++; a[cantidad] = n; return; }
haces el array de un tamaño 2 (es decir con claves 0, 1) y luego intentas meter un nodo en la posicion 2 void h::insertar(nodo n){ a= (nodo *)realloc(a,sizeof(nodo)*(cantidad + 1)); a[cantidad] = n; cantidad++; return; }
eso debería solucionar el problema... recomiedno en estos casos hacer uso del debugger... ahí fue que lo vi XD
|
|
« Última modificación: 4 Julio 2014, 07:40 am por engel lex »
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
do-while
Desconectado
Mensajes: 1.276
¿Habra que sacarla de paseo?
|
¡Buenas! Cuando utilices realloc es recomendable utilizar un puntero auxiliar para almacenar el valor devuelto por la función. Si realloc no puede reservar la cantidad de espacio especificada devuelve NULL (y creo que deja el puntero original sin modificar, pero por si acaso mira alguna referencia como www.cplusplus.com ). Si no te devuelve NULL lo único que tienes que hacer es asignar el puntero auxiliar al original. Trabajando de esta forma te ahorrarás posibles problemas que puedan surgir en tu programa y tendrás los errores más controlados. ¡Saludos!
|
|
|
En línea
|
- Doctor, confundo los números y los colores. - Vaya marrón. - ¿Marrón? ¡Por el culo te la hinco!
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
API parecida a realloc
Ingeniería Inversa
|
.:UND3R:.
|
3
|
2,507
|
6 Octubre 2011, 17:56 pm
por Иōҳ
|
|
|
problemas con parámetros realloc
Ingeniería Inversa
|
.:UND3R:.
|
1
|
2,219
|
6 Octubre 2011, 06:02 am
por apuromafo CLS
|
|
|
Problema con realloc - c
Programación C/C++
|
HRSLASH
|
5
|
3,187
|
5 Noviembre 2012, 02:51 am
por HRSLASH
|
|
|
Problema con realloc en un bucle
Programación C/C++
|
SheKeL_C$
|
4
|
2,517
|
18 Marzo 2016, 18:04 pm
por SheKeL_C$
|
|
|
Duda con realloc
Programación C/C++
|
mester
|
5
|
3,740
|
6 Septiembre 2016, 18:29 pm
por MAFUS
|
|