程序接收信号SIGSEGV分段故障

Ham*_*DAR -4 c c++ struct pointers

我已经制作了MCVE例程,程序崩溃并在我添加到unpack_code函数后返回255(之前它正在工作):

int ch_bit; 
unsigned int *ch_word; 
ch_bit = *p_ch_bit; 
Run Code Online (Sandbox Code Playgroud)

波士顿代码

#include <stdio.h>
#include <stdlib.h>

struct melp_param *par;

void unpack_code( unsigned int **p_ch_beg, int *p_ch_bit, 
        int *p_code, int numbits, int wsize,unsigned int erasemaks)
{
      int ret_code;
      int ch_bit;
      unsigned int *ch_word;
      ch_bit = *(p_ch_bit);
      *p_code = 0;

}

void melp_chn_read(struct melp_param *par, 
                   struct melp_param *prev_par)
{



}

int main(void)
{
      int bit_buffer[42];

    unpack_code(NULL, NULL, bit_buffer, 0, 0, 0);

    return 0;

}
Run Code Online (Sandbox Code Playgroud)

经过一步一步的调试后:*p_ch_bit=Cannot access memory at address 0x0和消息错误出现'分段错误.....'

请帮我

Bud*_*ddy 5

您正在传递NULL,p_ch_bit并且在尝试取消引用该指针时它会崩溃.

我建议学习如何使用调试器来找出将来会崩溃的内容.这真的会有所帮助!

  • 不传入NULL?我不确定你的程序正在尝试做什么. (3认同)