elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Fallo en Code::Blocks? Sistema operativo?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Fallo en Code::Blocks? Sistema operativo?  (Leído 4,442 veces)
Cabezon_Encebollao

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Fallo en Code::Blocks? Sistema operativo?
« Respuesta #10 en: 14 Julio 2018, 17:10 pm »

He encontrado un par de fallos (mios, mecagonlamarsalada)

1. La primera funcion no logre hacerla funcionar de nuevo, asi que la quite y lo hice desde el propio main... con el codigo que te mando ahora funciona perfectamente... tanto con el delete[] como con el delete!!!

2. El otro problema es cuando inicializo el puntero tal que asi: p="Puntero cabron". El cout lo muestra... pero el delete lo revienta. Con el codigo que te mando ahora, me funciona (igual actualizar el lxle sirvio, yo ya no se na jaja)
Código
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. int contadorStrings(string s)
  5. {
  6.    int cuenta=0;
  7.    for(int a=0;s[a]!='\0';a++)cuenta++;
  8.    return cuenta;
  9. };
  10.  
  11. int main()
  12. {
  13.    string texto="Pruebas de funcionamiento";
  14.    cout<<texto<<" : "<<contadorStrings(texto)<<endl;
  15.  
  16.    char *d=NULL;
  17.    d=new char[contadorStrings(texto)];
  18.  
  19.    // Si en lugar de la secuencia for inferior pongo p="texto"; el delete rompe
  20.    for(int a=0;texto[a]!='\0';a++)
  21.    {
  22.        d[a]=texto[a];
  23.        cout<<texto[a]<<" ";
  24.    };
  25.    d[contadorStrings(texto)]='\0';
  26.  
  27.    cout<<"\nEl contenido del puntero es: "<<d<<endl;
  28.  
  29.    delete[] d;
  30.    return 0;
  31.  
  32. };
  33.  
  34.  


En línea

Cabezon_Encebollao

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Fallo en Code::Blocks? Sistema operativo?
« Respuesta #11 en: 14 Julio 2018, 17:15 pm »

Genial!! ahora ya lo entiendo, Calgary! no contaba con que cambiaba el tipo de asignacion de memoria! Ahora ya entiendo porque pasaba. Mil millones de gracias.. con esto de las memorias estaba echo un lio, ahora ya lo entiendo! tomate unas cuantas cervezas a mi salud, que las has ganado aguantandome :D ( y yo echando la culpa al pc.. sere prepotente :P)


En línea

CalgaryCorpus


Desconectado Desconectado

Mensajes: 323


Ver Perfil WWW
Re: Fallo en Code::Blocks? Sistema operativo?
« Respuesta #12 en: 14 Julio 2018, 17:25 pm »

Te falta pedir memoria para el 0 final.
No es suficiente contar los caracteres que quieres copiar desde el string original, porque en verdad requieres 1 mas. Hazme caso y cuando pidas memoria pide 1 mas que los caracteres visibles. La linea 25 de tu programa esta escribiendo en un espacio de memoria que no es tuyo. Hazlo tuyo pidiendo memoria para 1 mas en la linea 17.


En línea

Aqui mi perfil en LinkedIn, invitame un cafe aqui
Cabezon_Encebollao

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Fallo en Code::Blocks? Sistema operativo?
« Respuesta #13 en: 14 Julio 2018, 17:34 pm »

Lo haré tienes toda la razon, la que se puede liar por un triste espacio de memoria!
Y no te imaginas lo mucho que me has ayudado con el tema de la asignacion de memoria. No me entraba en la cabeza de que estaba reasignandolo y liandola parda. Ya me siento valiente hasta la proxima liada!
Mil gracias de nuevo, a veces es desesperante tener fallos y no tener ni idea de que pasa y de donde vienen
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Fallo en Code::Blocks? Sistema operativo?
« Respuesta #14 en: 15 Julio 2018, 02:37 am »

Te paso un documento que te irá muy bien para aprender a manejar la memoria. Es para C, pero cómo C++ está basado y es muy parecido en ese aspecto te funcionará igual para saber cómo maneja éste último la memoria.
En línea

Cabezon_Encebollao

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Fallo en Code::Blocks? Sistema operativo?
« Respuesta #15 en: 15 Julio 2018, 18:54 pm »

Muchas gracias, Mafus! Reconozco que me hago un lio bastante gordo con ellas!  tengo muy buenas ideas en la cabeza, y cuando me pongo a ello, ya ves... la lio parda :D
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Fallo en Code::Blocks? Sistema operativo?
« Respuesta #16 en: 15 Julio 2018, 21:52 pm »

Ups, que no pegué la dirección. Aquí va: http://www2.elo.utfsm.cl/~lsb/elo320/clases/c3.pdf
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con CODE BLOCKS 8.02
Programación C/C++
Silvia Alicia 8 4,351 Último mensaje 29 Noviembre 2012, 15:11 pm
por Silvia Alicia
Compilador code blocks
Dudas Generales
~H~ 2 2,468 Último mensaje 19 Abril 2013, 21:27 pm
por OmarHack
FALLO AL INICIAR EL SISTEMA OPERATIVO WINDOWS 7
Windows
ftejada 3 11,447 Último mensaje 14 Mayo 2014, 14:25 pm
por Randomize
Instalación de SDL en Code::Blocks
Programación C/C++
DeMoNcRaZy 4 3,533 Último mensaje 20 Junio 2015, 23:17 pm
por DeMoNcRaZy
[C++][?]Code::blocks + wxformbuilder "generate code error"
Programación C/C++
vitoafk 0 1,710 Último mensaje 2 Octubre 2015, 04:06 am
por vitoafk
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines