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

Tn 4dm1n tuadmin en gmail.com
Mie Nov 18 16:07:13 GMT 2009


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";

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

#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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: https://lists.ubuntu.com/archives/ubuntu-bo/attachments/20091118/4b19d9e3/attachment.htm 


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