• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

SPOJ: 626 obżartuchy - SIGABRT wskaźniki

0 głosów
61 wizyt
pytanie zadane 22 grudnia 2018 w C i C++ przez Natalia Hołub Nowicjusz (120 p.)

Rozwiązałam zadanie z użyciem tablic (zaakceptowane przez sędziego), potem zmodyfikowałam kod tak aby wykorzystać dynamiczne alokowanie pamięci i tu pojawia się problem - chociaż wszystko działa w kompilatorze, sędzia odrzuca rozwiązanie z komunikatem SIGABRT.

Nie mam pojęcia gdzie może być błąd,  proszę o wskazówkę.

#include <iostream>

using namespace std;

const int Sekund_na_dobe = 86400;

int main()
{
    int t, obzartuchy, ciastka_na_pudelko, suma_ciastek = 0;
    cin >> t;

    for (int i = 1; i <= t; i++)
    {
        cin >> obzartuchy >> ciastka_na_pudelko;

        int *czasy;
        czasy = new int [obzartuchy];

        for (int i = 0; i < obzartuchy; i++, czasy++)
        {
            cin >> *czasy;
            suma_ciastek += Sekund_na_dobe / *czasy;
        }

        if (suma_ciastek % ciastka_na_pudelko == 0)
            cout << suma_ciastek / ciastka_na_pudelko << endl;
        else
            cout << (suma_ciastek / ciastka_na_pudelko) + 1 << endl;

        delete [] czasy;
        suma_ciastek = 0;
    }

    return 0;
}

 

komentarz 22 grudnia 2018 przez monika90 Pasjonat (23,620 p.)
Do rozwiązania tego zadania nie są potrzebne tablice.

1 odpowiedź

+2 głosów
odpowiedź 22 grudnia 2018 przez RafalS VIP (110,060 p.)

delete[] musisz wywołać dokładnie na adresie zwróconym przez new, a Ty wywołujesz na adresie przesunietym o ilosc obzartuchow.

I nie wiem po co tak śmiesznie iterujesz po tablicy. Przy alokacji dynamicznej tablicy mozesz dalej wykorzystywac najzwyklejszy operator []:

czasy[i] = 0;

 

komentarz 22 grudnia 2018 przez Natalia Hołub Nowicjusz (120 p.)
Dziękuję, po poprawkach działa.

Podobne pytania

0 głosów
3 odpowiedzi 230 wizyt
pytanie zadane 29 sierpnia 2016 w C i C++ przez eighty Nowicjusz (190 p.)
0 głosów
2 odpowiedzi 121 wizyt
pytanie zadane 21 lutego 2018 w C i C++ przez Deneverhad Początkujący (350 p.)
0 głosów
1 odpowiedź 114 wizyt
Porady nie od parady
Odznacz odpowiedź zieloną fajką, jeśli uważasz, że jest ona najlepsza ze wszystkich i umożliwiła ci rozwiązanie problemu.Najlepsza odpowiedź

63,304 zapytań

109,563 odpowiedzi

228,872 komentarzy

43,892 pasjonatów

Przeglądających: 111
Pasjonatów: 4 Gości: 107

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...