MRT*_*T89 9 c segmentation-fault
为什么我使用此代码会出现分段错误?
/* solver.h header file */
10 struct options{
11 unsigned int one:1, two:1, three:1, four:1, five:1, six:1, seven:1, eight:1, nine:1;
12 };
13
14
15 /* structure to describe a cell */
16 struct cell{
17 short value;
18 struct options open_options;
19 };
Run Code Online (Sandbox Code Playgroud)
solver.c:
5 #include <stdio.h>
6 #include "solver.h"
7
8
9
10
11
12 int main(){
13 struct cell board [9][9];
14 int i=0,j=0;
15
16
17 for(i = 1; i<10; i++)
18 for(j = 1; j<10; j++)
19 (board[i][j]).value = j;
20
21 for(i = 1; i<10; i++){
22 for(j = 1; j<10; j++)
23 printf(" %d",(board[i][j]).value);
24 printf("\n");
25 }
26 return 0;
27 }
Run Code Online (Sandbox Code Playgroud)
输出:
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9分段错误:11
MBy*_*ByD 12
数组从0开始索引,因此循环应该是for(i = 0; i<9; i++)和不是for(i = 1; i<10; i++)
在您的情况下,您可能会覆盖堆栈的一部分,但通常,超出边界会导致未定义的行为.
| 归档时间: |
|
| 查看次数: |
87098 次 |
| 最近记录: |