błąd wykonania (SIGABRT)

Odpowiedz Nowy wątek
2011-08-20 10:34
gubbi
0
#include<cstdio>
 
int main()
    {
    unsigned long int a, b, *c, z;
    while(scanf("%lu%lu", &a, &b)){
        z = 0;
        c = new unsigned long int[b];
        while(b--)
        {
               scanf("%lu", &c[b]);
               if(c[b] == a) z++;
        }
    printf("%lu\n", z);
    }
    return 0;
}

Dleczego kompilator wywala mi błąd wykonania (SIGABRT) ?

Pozostało 580 znaków

2011-08-20 16:20
gubbi
0

Dodam, że przy takim kodzie program wykonuje się bez problemu...

#include<iostream>
using namespace std;
int main(){
    unsigned long int a, b, *c, z;
    while(cin>>a>>b){
    z = 0;
    c = new unsigned long int[b];
    while(b--){
               cin>>c[b];
               if(c[b] == a) z++;
    }
    cout<<z<<endl;
    }
    return 0;
}

O co chodzi? Dlaczego pierwszy kod po skompilowaniu wywala błąd?

Pozostało 580 znaków

2011-08-20 16:29
Kumashiro
0
gubbi napisał(a)

Dleczego kompilator wywala mi błąd wykonania (SIGABRT) ?

Dla jakich danych wejściowych? Zapuszczałeś debugger? W której linii masz ABRT?

BTW, masz memleaka.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0