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

    [c/c++] cast funzionante in c non va in c++

    ciao a tutti

    ho 2 file COMPLETAMENTE IDENTICI uno con estensione .c uno .cc
    li compilo il primo con

    codice:
    gcc -I../h -c -g -DLINUX ../api/await_contact.c
    il secondo con
    codice:
    gcc -I../h -c -g -DLINUX ../api/await_contact.cc

    la compilazione del file .cc genera il seguente errore:
    codice:
    src/rete.cc:137: error: invalid conversion from `int*' to `socklen_t*'
    la riga è questa:
    codice:
    	newsock = accept(sock, (struct sockaddr *) &csockaddr, &csockaddrlen);
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    C'ha ragione il C++, per il semplice motivo che il C non è molto rigoroso con i cast, quindi tutti quelli che compilando come file C ti vengono accettati, non sono validi in C++ (grazie a dio, perke spesso sono fonte di errori!).

    Se sei sicuro che il cast è corretto, rendilo esplicito con:

    newsock = (socklen_t*)accept(sock, (struct sockaddr *) &csockaddr, &csockaddrlen);



    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

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.