Je cette partie du code:C++ accès variable struct provoque une erreur de segmentation
int connectingSocket,port;
struct sockaddr_in server_address;
struct hostent *server;
server = gethostbyname("localhost");
if(server = NULL)
dataFile << "Error finding a host!" << std::endl;
port = 7017;
connectingSocket = socket(AF_INET,SOCK_STREAM,0);
if(connectingSocket < 0)
dataFile << "Error opening a socket" << std::endl;
memset(&server_address,0,sizeof(server_address));
server_address.sin_family = AF_INET;
server_address.sin_port = htons(port);
memcpy(&(server_address.sin_addr.s_addr), server->h_addr_list,server->h_length);
Je suis sûr que la dernière ligne lance erreur Segmentation fault (core dumped), mais je ne suis pas sûr de ce que le problème est. J'ai essayé d'imprimer les tailles des variables.
std::cout << sizeof(server_address.sin_addr.s_addr) << " - " << sizeof(server->h_addr_list) << std::endl;
Cette ligne imprime "4 - 8", les résultats ne devraient pas être les mêmes si je veux copier?
aussi:
std::cout << server->h_length << std::endl;
Cette ligne provoque seule Segmentation fault.So Je crois que l'accès à cette variable provoque l'problem.I besoin de votre aide pour y remédier!
Merci d'avance!
'if (server = NULL)' ce n'est pas une comparaison avec null. vous devriez utiliser == à la place. – Dominik