Viernes 8 de Noviembre de 2024, 19:17
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Problema Con Dev Cpp
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Problema Con Dev Cpp (Leído 1491 veces)
Iganguli
Miembro activo
Mensajes: 51
Nacionalidad:
Problema Con Dev Cpp
«
en:
Miércoles 20 de Febrero de 2008, 17:57 »
0
hola tengo este pequeño programa que lo que hace es que el usuario teclea una cadena y luego desplegarla al reves asi si por ejemplo el usuario escribe hola el programa despliega aloh bueno en fin el problema es que cuando lo corro en borland c v3 si jala pero cuando lo intento correr en dev no da me sale que hay violacion en el aceso de memoria si alguien me pudiera decir en que esty mal
Código: Text
#include <stdio.h>
#include <string.h>
int main()
{
int i;
char *cad;
printf("introduce una cadena de carcateres \n");
fflush(stdin);
scanf("%[^\n]",cad);
for(i=strlen(cad)-1;i>=0;i--)
printf("%c",*(cad+i));
return 0;
}
Tweet
Eternal Idol
Moderador
Mensajes: 4696
Nacionalidad:
Re: Problema Con Dev Cpp
«
Respuesta #1 en:
Miércoles 20 de Febrero de 2008, 18:55 »
0
warning C4700: uninitialized local variable 'cad' used
Estas usando un puntero sin inicializar (cad) ...
Nacional y Popular
En mi país la bandera de Eva es inmortal.
Queremos una Argentina socialmente justa, económicamente libre y políticamente soberana.
¡Perón cumple, Evita dignifica!
La mano invisible del mercado me robo la billetera.
ProfesorX
Moderador
Mensajes: 796
Nacionalidad:
Re: Problema Con Dev Cpp
«
Respuesta #2 en:
Miércoles 20 de Febrero de 2008, 18:57 »
0
Clasico error de principiante al comenzar con punteros y memoria dinamica, defines una variable de tipo char*, pero nunca asignas espacio para la cadena, en realidad no es que funcione en borland, simplemente que al ejecutarse en borland tienes suerte de que no se sobrescriba algo vital, y por eso "aparentemente" funciona, pero no es asi. La solucion es simplemente reservar memoria suficiente para la variable.
Si utilizas C:
Código: Text
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i;
char *cad;
// Con esta sentencia reservas 30 posiciones de memoria para la cadena
cad = (char*) malloc(sizeof(char) * 30);
printf("introduce una cadena de carcateres \n");
fflush(stdin);
scanf("%[^\n]",cad);
for (i=strlen(cad)-1;i>=0;i--)
printf("%c",*(cad+i));
// Liberas la memoria utilizada
free (cad);
return 0;
}
Si utilizas C++
Código: Text
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i;
char *cad;
// Con esta sentencia reservas 30 posiciones de memoria para la cadena
cad = new char[30];
printf("introduce una cadena de carcateres \n");
fflush(stdin);
scanf("%[^\n]",cad);
for (i=strlen(cad)-1;i>=0;i--)
printf("%c",*(cad+i));
// Liberas la memoria utilizada
delete cad;
return 0;
}
Saludos
NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================
Iganguli
Miembro activo
Mensajes: 51
Nacionalidad:
Re: Problema Con Dev Cpp
«
Respuesta #3 en:
Miércoles 20 de Febrero de 2008, 18:57 »
0
ok tanx por la ayuda
ProfesorX
Moderador
Mensajes: 796
Nacionalidad:
Re: Problema Con Dev Cpp
«
Respuesta #4 en:
Miércoles 20 de Febrero de 2008, 18:58 »
0
Me gano por unos minutos eternal Idol, pero mi explicacion esta mas completa jeje
NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Problema Con Dev Cpp