我正在尝试从这篇文章中实现环形缓冲区 https://stackoverflow.com/a/827749 我添加的唯一代码是一个看起来像这样的 main。
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
然后取消引用。
但我相信你一定已经意识到了这一点,因为我相信你会尝试在调试器中运行代码......