[Ubuntu-bo] Problema extraño con C++

Tn 4dm1n tuadmin en gmail.com
Jue Nov 19 13:56:39 GMT 2009


bueno ose a el programa de de ejcutar el codigo que le sigue
bueno ya encontre la solucion en linux compilandolo funciona con lo uno y la
otra manera pero en winxp  no maneja bien los punteros de memoria por lo
cual hacia q de error
el problema bien en estos 2

char *name ;
char *apellido ;

esto con
std::cin.getline( name,30);//y el otro
supuestamente este metodo asigna autmoticamente
la mmoria en la compilacion

s

pero al compilarlo para plataforma w32  esta asignacion automatica es
aleatoria osea no toma en cuenta la entrada de cin  bueno la solucionq le di
a esto y a mi trabajito es crear una variable global temporal

char temp[1024] ;

bueno eso para mi trbajao  ahora para este ejemplo me basto darles a cada
variable la longitud necesaria

char name[30] ;
char apellido[30] ;


bueno con eso todo andando perfecto   creo q como alguien me aconsejo es
bueno tener todo bajo control
jeje aunque esto no es un foro es bueno tener este tema como *SOLUCIONADO*
El 18 de noviembre de 2009 18:49, R. Alejandro Oquendo Muñoz <
rd.qnd.m en gmail.com> escribió:

>
>
> 2009/11/18 Tn 4dm1n <tuadmin en gmail.com>
>
> creo q esta es las egunda vez q pido ayuda :) ojala me ayuden en el tema de
>> C++ y OOP
>> haciendo un pequño proyecto en linux para luego protqarlo en diferentes
>> plataformas como ser WINDOWS  me salio une xtraño error   bueno el codigo lo
>> reduci a un ejemplo
>> este es el codigo del error
>>
>> #include <iostream>
>>
>> #include <cstring>
>>
>>
>> class saludo
>> {
>>     public:
>>     saludo()
>>     {
>>
>>     };
>>     public:
>>
>>
>>     void hola()
>>     {
>>
>>         char temp2[128] = "estoe s extranio";
>>
>>
>>         char temp[128] = "as";
>>
>>
>>         char *name ;
>>         char *apellido ;
>>
>>
>>         std::cout  << temp2 << "Dime tu Nombre:" ;
>>
>>
>>         std::cin.getline( name,30);
>>         std::cout << "y tu apellido:";
>>
>>
>>         std::cin.getline( apellido , 30);
>>
>>         std::strcat(temp , name);
>>         std::strcat(temp , apellido);
>>         //std::strcat(temp2 , name);
>>
>>
>>         std::cout << temp << std::endl;
>>     }
>> };
>>
>> int main()
>>
>>
>> {
>>    saludo* variable ;
>>     variable = new saludo();
>>     variable->hola();
>>     std::cout << "\nFINNNNNNNNNN";
>>
>>
>>     return 0;
>> }
>>
>> el error q da es un break en la parte de la variable
>>
>> char temp2[128] = "estoe s extranio";
>>
>> a que te refieres con "break"?
>
>
> moviendo la posicion de la variable se quita el error y mi pregunta es  por
>> que recien comienzo a programar en C++ y me gusta saber lsa razones ya q no
>> le encuentro sentido a este error   uso el Compilador de *GNU GCC
>> Compiler*
>> este codigo es el q funciona
>>
>
> compile los dos codigos y no veo la diferencia:
>
> [tmp]$ g++ prueba.cpp -o prueba
> [tmp]$ g++ prueba2.cpp -o prueba2
> [tmp]$ ./prueba
> estoe s extranioDime tu Nombre:juan
> y tu apellido:rojas
> asjuanrojas
>
> FINNNNNNNNNN[tmp]$
> [tmp]$ ./prueba2
> estoe s extranioDime tu Nombre:juan
> y tu apellido:rojas
> asjuanrojas
>
> FINNNNNNNNNN[tmp]$
> [tmp]$
>
> podrias poner la salida de los dos programas?
>
> Saludos
>
>>
>> #include <iostream>
>>
>> #include <cstring>
>>
>>
>> class saludo
>> {
>>     public:
>>     saludo()
>>     {
>>
>>     };
>>     public:
>>
>>
>>     void hola()
>>     {
>>
>>
>>         char temp[128] = "as";
>>
>>
>>         char *name ;
>>         char *apellido ;
>>
>>
>>         char temp2[128] = "estoe s extranio";
>>
>>
>>
>>
>>         std::cout  << temp2 << "Dime tu Nombre:" ;
>>
>>
>>         std::cin.getline( name,30);
>>         std::cout << "y tu apellido:";
>>
>>
>>         std::cin.getline( apellido , 30);
>>
>>         std::strcat(temp , name);
>>         std::strcat(temp , apellido);
>>         //std::strcat(temp2 , name);
>>
>>
>>         std::cout << temp << std::endl;
>>     }
>> };
>>
>> int main()
>>
>>
>> {
>>    saludo* variable ;
>>     variable = new saludo();
>>     variable->hola();
>>     std::cout << "\nFINNNNNNNNNN";
>>
>>
>>     return 0;
>> }
>>
>> porfa una explicacion  tengan un buen dia
>>
>> --
>> Canal oficial #ubuntu-bo @ irc.freenode.net
>> SLOB: http://softwarelibre.org.bo/ubuntu
>> Lista de correo Ubuntu-bo
>> Ubuntu-bo en lists.ubuntu.com
>> Modifica tu subscripción en:
>> https://lists.ubuntu.com/mailman/listinfo/ubuntu-bo
>>
>>
>
>
> --
>             _
> _ __ __|  |       ___
> |  '__/  _` |      /  _  \
> |  |  |  (_|  |     |  (_)  |
> |_|   \__,_|___ \___/
>            |_____|
> l.u. #425157
>
>
>
>
> --
> Canal oficial #ubuntu-bo @ irc.freenode.net
> SLOB: http://softwarelibre.org.bo/ubuntu
> Lista de correo Ubuntu-bo
> Ubuntu-bo en lists.ubuntu.com
> Modifica tu subscripción en:
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-bo
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: https://lists.ubuntu.com/archives/ubuntu-bo/attachments/20091119/5b5e6f00/attachment.htm 


Más información sobre la lista de distribución Ubuntu-bo