Segmentation fault (core dumped)

mac2022-06-30  31

以下程序不小心在11行scanf()中把parr写成了*parr,在编译时没问题,但在运行时出现:

[lujinhong@lujinhong chapter12]$ gcc reverse3.c [lujinhong@lujinhong chapter12]$ ./a.out Enter 10  number: 19 76 8 93 766 8 6 934 0 -3Segmentation fault (core dumped)

#include <stdio.h> #define ARRAY_SIZE 10 int main(void){ int arr[ARRAY_SIZE], *parr; printf("Enter %d number: ", ARRAY_SIZE); for(parr=arr; parr<arr+ARRAY_SIZE; parr++){ scanf("%d", *parr); } printf("The number will output in reversal order:\n"); for(parr=arr+ARRAY_SIZE-1; parr>=arr; parr--){ printf("%d\t",*parr); } printf("\n"); return 0; } Segmentation fault (core dumped)一般是对内存操作不当造成的,常见的有:

(1)数组超出范围。

(2)修改了只读内存。

(3)还有本例也是修改了只读内存。

转载于:https://www.cnblogs.com/jinhong-lu/archive/2013/02/06/4559569.html

最新回复(0)