memset
に静的に割り当てられた文字の配列を返しますが、malloc
を使用して割り当てられた同じ長さの配列ではありません。静的に割り当てられたchar配列のC - memset segfault
変数の定義:
//static
char inBuff[IN_BUFF_LEN];
//dynamic
char * inBuffD;
関数呼び出し:関数内
//static, cast used because char** != char (*) [n]
serverInit(portNum, (char**) &inBuff, &serv_addr, &sockfd)
//dynamic
serverInit(portNum, &inBuffD, &serv_addr, &sockfd)
が使用:
memset(*inBuffAdr, 0, IN_BUFF_LEN);
私は私の問題は、関数呼び出しの違いにあると思われます、より正確に言えば、「char **!= char(*)[n]」状況に関する私の不完全な理解です。しかし、私はこれをあまりにも長い間叩いていて、木から森を見ることができないので、何かヒントやアドバイスをいただければ幸いです。
'inBuffAdr'とは何ですか?どのように設定されていますか? – NPE
それは他の場所で使用されているちょうどいくつかの構造であり、手元の質問にとって重要ではありません。しかし、もしあなたが本当に知りたいのであれば、私はあなたにいくつかの詳細を与えることができます – Zodd