我正在尝试从这篇文章 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/