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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con unas pequeñas correcciones de C a C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con unas pequeñas correcciones de C a C++  (Leído 3,242 veces)
elmasnew

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Ayuda con unas pequeñas correcciones de C a C++
« en: 7 Noviembre 2015, 00:40 am »

Hola amigos, a ver si me podeis ayudar con este problemilla..

Estoy utilizando un codigo de C en visual studio 2010 y funciona bien casi todo, excepto unas pocas lineas que dan algunos errores que procedo a describir:

Primer error:

MiValor = malloc(MiValor_LEN);                                 ---->>> IntelliSense: no se puede asignar un valor de tipo "void *" a una entidad de tipo "unsigned char *"

Segundo error:

if ((MiValor = calloc(1, sizeof(struct global)))) {          ---->>> IntelliSense: no se puede asignar un valor de tipo "void *" a una entidad de tipo "global *"

Tercer error:

if (get_int(optarg, &MiValor->verbosity) != 0 || MiValor2 = 1 || 3 = MiValor3) {                              ---->>> IntelliSense: la expresión debe ser un valor L modificable

Cuarto error:

if (MiValor[0] = 0x80 && MiValor[4] = 0x80 && MiValor[8] = 0x80  && MiValor[12] = 0x80) {          ---->>> IntelliSense: la expresión debe ser un valor L modificable


Seguro que para alguien que sepa de C++ es facil solucionarlo, pero yo no conozco muy bien los metodos de este lenguaje..

Saludos..


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Ayuda con unas pequeñas correcciones de C a C++
« Respuesta #1 en: 8 Noviembre 2015, 02:15 am »

Incluso en C, ese código es incorrecto.
Los primeros 2, como dice el compilador, es porque tratas de guardar un valor void* (que es lo que retorna malloc y calloc), en punteros de otro tipo. Tienes que hacer una conversión explícita:
Código
  1. MiValor = (unsigned char*)malloc(MiValor_LEN)

El tercero y cuarto dicen: la expresión debe ser un valor L modificable. valor L, con L de Left. Los operadores binarios tienen 2 elementos: el izquierdo L, y el derecho R. L = R;. El izquierdo L, en caso de asignaciones, no puede ser una constante. En el código tienes: 3 = MiValor3. "3" es uan constante numérica, no le puedes asignar otro valor.

Olvidando esos errores: En esos if, no estás haciendo comparaciones si es lo que pretendías hacer. Estás haciendo asignaciones. No confundas la asignación "var = 5", con la comparación "var == 5".


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda!!! Quemando unas peliculas
Multimedia
Hades_Hell 7 4,783 Último mensaje 22 Diciembre 2008, 20:22 pm
por Hades_Hell
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines