c struct pointer Seg.fault when malloc()

标签 c pointers struct malloc

我正在尝试从这篇文章 https://stackoverflow.com/a/827749 中实现环形缓冲区我添加的唯一代码是如下所示的主代码。

int main(int argc, char** argv) {
    circular_buffer *my_buff;
    cb_init(my_buff, 16, sizeof(char));

    return (EXIT_SUCCESS);
}

不过,当我尝试运行此代码时,我立即收到 SIGSEV(段错误)错误。从外观上看,它发生在调用 malloc() 的 cb_init() 的第一行。

最佳答案

你需要为my_buff分配内存

此时您将一个未初始化的指针传递给 cb_init,然后它会被取消引用。

但我相信你一定已经意识到这一点,因为我相信你会尝试在调试器中运行代码......

关于c struct pointer Seg.fault when malloc(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10351804/

相关文章:

arrays - Insure++ 会检测堆上 C 结构中的数组溢出吗?

c - 使用 typedef 结构时出错

c - C 程序永远不会从 strtok() 函数返回的问题

c - 为什么静态和动态变量在 c 初始化期间不能分配

c++ - 为什么我们在下面的代码中使用 ptr 而不是 *ptr

C: 结构 X 没有名为 Y 的成员

c - 生命游戏内存优化

c - 如何创建一个特定大小的指针,然后让它指向内存中的特定地址

指针取消引用符号 * 可以称为 "many"吗?

c - 如何访问结构体中的指针