Segmentation fault (core dumped)

以下程序不小心在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 -3
Segmentation 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)还有本例也是修改了只读内存。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值