3 Stimmen

Wie wandelt man double* in ein double um?

Haben Sie eine Idee für dieses Typecasting-Problem?

Ich versuche Folgendes zu tun. Dies ist nicht der eigentliche Code:

LinkedList* angles;
double dblangle; 
dblangle = (some function for angle calculation returning double value);
(double*)LinkedListCurrent(angles) = &double; 

Ich hoffe, Sie verstehen die Idee. Die letzte Zeile ist die Ursache des Problems. Ursprünglich sind die Winkel void* Typs, also muss ich ihn zunächst in double* .

0voto

Seth Punkte 42154

Als Antwort auf diese Frage:

Ich möchte das Gegenteil von dem tun, was Sie hier getan haben. Ich möchte den Wert des Zeigers in die Gleitkommazahl d kopieren. Wie kann ich das tun?

Sie würden etwa so vorgehen:

// declare a pointer to a double
double *pointer_to_double; 

// declare a double
double my_double = 0.0;

// use the indirection operator (*) to dereference the pointer and get the value
// that it's pointing to. 
my_double = *pointer_to_double;

Dies könnte in einem echten Programm so gemacht werden:

void print_chance_of_snow(double *chance)
{
    double d = *chance;
    d = d * 100; // convert to a percentage
    printf("Chance of snow is: %.2f%%\n", d);
}

int main(int argc, char *argv[])
{
    double chance_of_snow = 0.45;
    print_chance_of_snow(&chance_of_snow); 
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X