Afişează mesaje
Pagini: [1]
1  Comunitate - feedback, proiecte si distractie / Feedback infoarena / Killed by signal 11(SIGSEGV). : Martie 15, 2016, 09:35:49
Am trimis urmatoarea sursa la problema TV:
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <string.h>

using namespace std;

int a[98000],b,i;        //Aici limita ar trebui sa fie in jur de 86405.. Angry
int cerinta;

void citire()
{
    int n,se,j,t;
    char s[300],*p;  //Aici limita ar trebui sa fie aproximativ 15
    ifstream f("tv.in");
    f>>cerinta>>n;
    f.get();
    for(i=1;i<=n;i++)
    {
        f.getline(s,250);
        p=strtok(s," :");
        se=atoi(p);
        p=strtok(NULL," :");
        b=atoi(p);
        t=b*3600;
        p=strtok(NULL," :");
        b=atoi(p);
        t+=b*60;
        p=strtok(NULL," :");
        b=atoi(p);
        t+=b;
        //cout<<t<<" "<<t+se<<'\n';
        for(j=0;j<se;j++)
        {
            a[t+j]++;
        }
    }
    f.close();
}

void transformare(int t)
{
    ofstream g("tv.out");
    g<<t/36000<<(t/3600)%10<<":"<<((t/60)%60)/10<<(t/60)%10<<":"<<(t%60)/10<<t%10;
    g.close();
}

int c1()
{
    int max1;
    for(i=0;i<87000;i++)
        if(a[i  ]>max1){max1=a[   i];b=i;}
    return b;
}

int c2()
{
    for(i=0;i<87000;i++)
        if(a[i   ]){b++;}
    return b;
}

int main()
{
    citire();
    if(cerinta==1) transformare(c1());
    else transformare(c2());
    return 0;
}


Dupa ce am trimis, la toate testele mi-a dat eroarea: Killed by signal 11(SIGSEGV).
Am inteles ca aceasta se intampla atunci cand programul acceseaza memorie nealocata, asa ca am marit vectorii (cine stie, poate ca m-am incurcat in limite). Si asa, tot acelasi mesaj imi apare...
Puteti sa ma ajutati?
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines