0

私はこの投稿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()の最初の行で発生します。

4

1 に答える 1

3

にメモリを割り当てる必要がありますmy_buff

現時点では、初期化されていないポインタを渡してcb_initおり、そこに逆参照されています。

しかし、デバッガーでコードを実行してみたと確信しているので、これに気付いたに違いありません...

于 2012-04-27T13:49:35.957 に答える