2016-07-16 16 views
-1

文字列を引数として関数に渡そうとしています。しかし、この関数は呼び出していません。間違いを教えてください。引数に文字列を渡すことができません。

//Main calling 
senddata("0000000000000001"); 

// Function to call 
void senddata(char message[]) 
{  
    if (sendto(s, message, strlen(message) , 0 , (struct sockaddr *) &si_other, slen) == SOCKET_ERROR) 
     { 
      printf("sendto() failed with error code : %d" , WSAGetLastError());    
      exit(EXIT_FAILURE); 
     } 

    fprintf(stderr, "Value of errno: %d\n", errno); 
} 

私は他の方法も

void senddata(char* message); 

または

void senddata(char message[16]); 

を試してみました。しかし、この関数は、コールと呼ばれています。

void senddata(char message[])は(基本的に同じである、またはchar []char *を期待していますが、定数文字列でそれを呼び出しているので、それはconst char * message(またはconst char message[]を取得

+0

これを呼び出すとどうなりますか? – Tibrogargan

+0

'si_other'と' slen'はどのように定義され、初期化されていますか?問題を示すコンパイル可能な例を提供してください。完全なソースコードまたは少なくとも 'main'関数を投稿してください。 – chqrlie

+0

プロトタイプはありますか?コンパイルからの警告はありますか? – cdarke

答えて

0

あなたの関数を実行する方法を教えてください)。あなたはconstを非constに変換することはできません。

あなたは、変数を渡すためにどちらかの必要

非const):

char * dummy = "0000000000000001"; senddata(dummy);

か(おそらくより良い方法)のconstとしてパラメータを宣言します

void senddata(const char message[])

関連する問題