C/Visual C - Problema con warning.

 
Vista:

Problema con warning.

Publicado por calvin2sr (1 intervención) el 08/04/2010 20:45:24
A ver si me podeis ayudar a eliminar este warning que me da en esta linea de codigo.
*commandline=(char)NULL;
Quiero meter en esa posicion de la cadena commandline un Null pero me da este warning:
cast from pointer to integer of different size
Me podeis echar una mano?? Gracias.

Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con warning.

Publicado por Tom (619 intervenciones) el 09/04/2010 10:00:14
¿ Qué es commandline ?

No cuesta mucho empezar a probar las posibles combinaciones, si andas perdido ...

*commandline = (char *)NULL;

por ejemplo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con warning.

Publicado por Jose Cruz (1 intervención) el 17/04/2010 05:17:08
Hola amigos, aqui traigo un warning el cual no me deja compilar mi programa de hola mundo, aun habiendo configurado mi dev- C++ para windows vita. el error es el siguiente:

Compilador: Default compiler
Building Makefile: "C:\Dev-Cpp\Makefile.win"
Ejecutando make...
make.exe -f "C:\Dev-Cpp\Makefile.win" all
Ejecución Terminada

POR FAVOR, NO PUEDO DORMIIIIIR!!! AYUDA, GRACIAS AKI UN AMIGO.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con warning.

Publicado por Capitan Kirk (97 intervenciones) el 09/04/2010 10:15:31
No indicas cómo has declarado commandline, quizás deberías postear el trozo de código con la declaración de commandline. De todos modos, allá voy:

En C, NULL es una macro que contiene el valor correspondiente a un puntero nulo (en C++ creo que es siempre 0, en C es usualmente 0, pero depende del sistema, no hay garantía de que sea así, algún sistema he visto que emplea -1 para este valor).

Tal como lo muestras, commandline es un puntero a carácter. Si lo que quieres es que este puntero tenga el valor de puntero nulo, basta con poner

commandline = NULL;

Si commandline es un puntero a puntero (del tipo que sea), sería:

*commandline = NULL;

Ten en cuenta que NULL es una dirección, por lo que es aplicable a cualquier puntero, sea del tipo que sea. El cast que estás haciendo es ilegal, estás intentando pasar de puntero a carácter, y de ahí que te indique que los tamaños son distintos y no puede hacer la conversión.

Si commandline es una cadena de caracteres, declarada como

char commandline[50]; // (por ejemplo)

(o creada mediante malloc() o alguna de sus parientes), y lo que quieres es que la cadena quede vacía, puedes poner

strcpy(commandline, "");

o bien, en un bucle ir poniendo a cero carácter a carácter.

No sé si esto resuelve tu duda, si no es así postea el trozo de código y podré ser más preciso.

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar