静的に割り当てられた文字の配列を使用しようとすると、segfault が発生しますが、memset
を使用して割り当てられた同じ長さの配列では発生しませんmalloc
。
変数の定義:
//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]」状況の不完全な理解にあると思われます。しかし、私はあまりにも長い間これを叩いていて、木から森を見ることができないので、ヒントやアドバイスをいただければ幸いです.