Foros del Web » Programación para mayores de 30 ;) » C/C++ »

class var global c++

Estas en el tema de class var global c++ en el foro de C/C++ en Foros del Web. Hola, tengo un problema y es, que cuando uso printf(ReGet); Me salen caracteres raros, cuando la variable es local, pero no cuando es global, es ...
  #1 (permalink)  
Antiguo 30/04/2012, 08:15
 
Fecha de Ingreso: julio-2010
Mensajes: 34
Antigüedad: 13 años, 9 meses
Puntos: 0
class var global c++

Hola, tengo un problema y es, que cuando uso

printf(ReGet);

Me salen caracteres raros, cuando la variable es local, pero no cuando es global, es decir:


char ReGet[1024]
int main()
{
strncpy(ReGet, "Index", 5);
printf(ReGet);
return 0;
}

no hay problema

pero cuando hago:

class info
{
public:
char ReGet[1024];
}



int main()
{
info* inf = new info;
strncpy(inf->ReGet, "Index", 5);
printf(inf->ReGet);
return 0;
}


me salen muchisimos caracteres extraños...
como lo puedo solucionar? (codigo hecho ahora, porque el original es muy largo.)

gracias a ver si me pueden ayudar.
  #2 (permalink)  
Antiguo 30/04/2012, 08:19
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: class var global c++

Proba asi:

class info
{
public:
char ReGet[1024];
}



int main()
{
info* inf = new info;
strncpy(inf->ReGet, "Index", 6);
printf(inf->ReGet);
return 0;
}
  #3 (permalink)  
Antiguo 30/04/2012, 10:25
 
Fecha de Ingreso: julio-2010
Mensajes: 34
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: class var global c++

oki gracias, es decir, si la var es local, tengo que darle un final, para que no de este error... pero siendo global no, pero sera recomendable xD.

como en mi codigo no estaba usando strncat, si no, que estaba usando un while para meter letra a letra, le puse puse que al finalizar, en la ultima posicion metiera '\0" que es el representante de final, y ya funciono, gracias sam90 otra vez ^^
  #4 (permalink)  
Antiguo 30/04/2012, 16:16
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: class var global c++

Pasa que en la memoria global debe estar inicializada de casualidad en cero...entonces te lo reconoce como fin de cadena.... cuando haces un new a lo mejor ya eso no pasa..

Saludos

Etiquetas: class, global, int, var, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:33.