Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [DevC++] ERRORE :invalid conversion from `void*' to..

    Ciao Ragazzi! Da un pò ho un problema con questo programma, cioè quando utilizzo i puntatori a struct, non mi viene compilato il sorgente e mi l'errore seguente invalid conversion from `void*' to..
    Ho provato a disinstallarlo,ma non c'è stato rimedio..

    Vi scrivo uno dei diversi programmini con i quali ho avuto problemi :
    #include <stdlib.h>
    #include <stdio.h>

    struct point{
    float x,y;
    };

    main(){
    struct point *p;
    p = malloc(sizeof(struct point));
    p->x = 1;
    p->y = 2;
    printf("x vale %f\n",p->x);
    printf("y vale %f\n",p->y);
    return 0;
    getchar();getchar();
    }

    L'errore mi viene dato nel main in corrispondenza di p = malloc(...)
    ,e dice < invalid conversion from `void*' to `Node*' >
    Sul pc di un mio amico,il codice copiato e incollato funziona perfettamente...Non capisco come mai

    Spero mi possiate dare una mano,perchè in questa condizione non sono capace di verificare la correttezza dei miei codici,e nn è il massimo in corrispondenza di un esame
    Grazie

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    E' una delle differenze che esistono tra il C++ e il C: quest'ultimo effettua le conversioni di tipo in modo automatico, cosi il risultato della malloc, che è un void* viene implicitamente convertito nel tipo della variabile p che è un struct point*. Le soluzioni sono due:

    1 - attenerti alle regole del c++ e fare il cast esplicitamente:

    p = (struct point *)malloc(sizeof(struct point));

    che comuqnue è codice C valido, oppure

    2 - fare in modo che devc++ compili il file come un file C non C++; prova a salvare il file dandogli estensione .c al posto di .cpp

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  3. #3
    Così funzionano alla grande!!! Al casting ci avevo pensato, anche se solo dopo aver lasciato il post sul forum...ma al salvataggio con diverso formato (.c) proprio no Grazie !!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.