C - 静态分配的字符数组的 memset 段错误

标签 c segmentation-fault memset

我在尝试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/

相关文章:

c - -错误 : Subscripted value is neither array nor pointer nor vector

编译器执行顺序

c - 正确使用 memset 和动态分配的多维数组

C段故障 Raspberry Pi2

c++ - 为什么 memset() 循环 1M 次和 10M 次花费相同的时间?

c++ - memset函数各种使用方式的区别

c - 在 C 中使用 #ifdef 和 enum

c - 将目录添加到 execvp() 的 PATH

c - 未发现泄漏时调试段错误的技巧

c++ - 在 C++ 中将对象存储在另一个对象中的正确方法?