小编twm*_*wmb的帖子

无法在C中将int赋值给dereferenced int

我搞不清楚了.我无法指定一个int被解除引用的人int *.

  printf("in octave\n");

  int *default_octave;
  printf("attr[%d]: %s\n",i+1,attr[i+1]);

  const char *octave_char = attr[i+1];
  printf("octave_char: %s\n", octave_char);

  int octave_number = atoi(octave_char);
  printf("octave_number: %d\n", octave_number);
  fflush(stdout);

  *default_octave=octave_number;
  printf("in octave pt 2\n");
  fflush(stdout);
Run Code Online (Sandbox Code Playgroud)

这是输出:

in octave
attr[1]: 4
octave_char: 4
octave_number: 4
Segmentation fault
Run Code Online (Sandbox Code Playgroud)

为什么?

运行GDB调试器也会到达该行,然后也会出现seg错误.

4

0            int octave_number = atoi(octave_char);
(gdb) s
41            printf("octave_number: %d\n", octave_number);
(gdb)
octave_number: 4
42            fflush(stdout);
(gdb)
43            *default_octave=octave_number;
(gdb) print octave_number
$1 = 4
(gdb) s

Program received signal SIGSEGV, Segmentation …
Run Code Online (Sandbox Code Playgroud)

c int dereference

1
推荐指数
1
解决办法
177
查看次数

标签 统计

c ×1

dereference ×1

int ×1