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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con Char
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con Char  (Leído 1,916 veces)
<<<-Basura->>>


Desconectado Desconectado

Mensajes: 388



Ver Perfil
Problema con Char
« en: 24 Junio 2013, 09:12 am »

Código
  1. class M{
  2. };
  3.  
  4. int main(){
  5. char c[5];
  6.  
  7. c = typeid(M).name();
  8.  
  9. return 0;
  10. }
  11.  


Alguien sabe porque se da este problema:

Citar

error: incompatible types in assignment of 'const char*' to 'char[5]'


En línea

<<<--Basura-->>>
kmilinh0

Desconectado Desconectado

Mensajes: 16



Ver Perfil
Re: Problema con Char
« Respuesta #1 en: 24 Junio 2013, 10:18 am »

Código:
typeid(M).name();


eso devuelve un const y tu variable c no es const. Creo que solo es eso. Declara c como:

Código:
 const char c[5]; 

prueba a ver


En línea

ecfisa

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: Problema con Char
« Respuesta #2 en: 24 Junio 2013, 11:35 am »

Hola.

typeid(x).name() devuelve un apuntador a c-string ( type_info::name ), es decir que por ejemplo podrías hacer:

Código
  1. ...
  2. class M { };
  3.  
  4. ...
  5. {
  6.  string typ1 = typeid(M).name();
  7.  // o tambien:
  8.  char *typ2 = (char*)typeid(M).name();
  9.  

Saludos. :)
« Última modificación: 24 Junio 2013, 11:38 am por ecfisa » En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Problema con Char
« Respuesta #3 en: 24 Junio 2013, 11:57 am »

Buenas!!

O también....

Código
  1. strcpy(c, typeid(M).name());
o strncpy

Saludos
En línea

Breakbeat como forma de vida
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Problema con Char
« Respuesta #4 en: 24 Junio 2013, 18:03 pm »

Código
  1. class M{
  2. };
  3.  
  4. int main(){
  5. char c[5];
  6.  
  7. c = typeid(M).name();
  8.  
  9. return 0;
  10. }
En C y C++ los arrays no pueden utilizarse en asignaciones (en ellas son lvalues pero no son modificables).

La solución es utilizar la función strcpy como en el ejemplo de satu para copiar la cadena en el array o bien utilizar un objeto de clase string como en el ejemplo de ecfisa.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
<<<-Basura->>>


Desconectado Desconectado

Mensajes: 388



Ver Perfil
Re: Problema con Char
« Respuesta #5 en: 2 Julio 2013, 08:39 am »

Si creo que la única solución viable es la de strncpy, así evito cualquier problema futuro
En línea

<<<--Basura-->>>
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda doble puntero char a matriz de char
Programación C/C++
neo_from_cs_matrix 3 6,034 Último mensaje 5 Septiembre 2011, 03:53 am
por rir3760
ERROR excepcion: char* = char* + n « 1 2 »
Programación C/C++
x64core 10 5,613 Último mensaje 21 Enero 2012, 20:20 pm
por Eternal Idol
Lectura de matríz de char como char** o DWORD*
Programación C/C++
david_BS 3 3,255 Último mensaje 20 Febrero 2012, 20:49 pm
por Eternal Idol
Como pasar una cadena char a hexadecimal por argumento a un constant char?
Programación C/C++
ahaugas 3 4,869 Último mensaje 13 Enero 2013, 14:09 pm
por ahaugas
Problema conversión Unsigned char a char
Programación C/C++
juliodiez 4 2,622 Último mensaje 19 Enero 2013, 04:34 am
por juliodiez
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines