我在尝试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]”情况的理解不完整。但我一直在敲这个太久了,无法从树上看到森林,所以任何提示和建议都将不胜感激。
最佳答案
只需发送 inBuff(不是 **inBuff)然后 memset inBuffAdr 而不是 *inBufAdr(您的其他 memset 可能也不起作用,您只是还不知道而已)
关于C - 静态分配的字符数组的 memset 段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10110381/