Wpis z mikrobloga

Siema, próbuje pomóc siostrze zrobić zadanie z programowania i mam pewien problem. Do funkcji przekazałem tablice dwuwymiarową, obliczyłem sume elementów w każdej kolumnie i wyniki zapisałem do tablicy jednowymiarowej. I jak z tej funkcji przekazać tą tablice jednowymiarową z powrotem do maina? wyskakuje mi błąd "[Error] invalid conversion from 'int*' to 'int' [-fpermissive]". Chodzi mi o funkcje, którą nazwałem obliczB.

tutaj mój kod http://pokazywarka.pl/u8o1ii/ i dolaczona tresc zadania.

#cpp #programowanie
LukerAl - Siema, próbuje pomóc siostrze zrobić zadanie z programowania i mam pewien p...

źródło: comment_P6lVbWQ7Vj97OfHbnMX4SxSkac9tfbz3.jpg

Pobierz
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@LukerAl: tablic z C nie można zwracać z funkcji. Możesz zaalokować tablice dynamiczie i zwrócić wskaźnik, albo przyjąć utworzyć tablicę w mainie i przyjąć ją jako arugment funkcji, albo użyć std::vector
  • Odpowiedz
3) nie zwalniasz pamięci


@Kaczus2B: po co ma zwalniać pamięć, skoro tylko jedna funkcja alokuje tylko raz (czyt. stałą liczbę razy) i do tego jest wywołana również dokładnie jeden raz?

dobre praktyki dobrymi praktykami, ale nie ma co się czepiać, skoro nie ma tu problemu IMHO.
  • Odpowiedz
Uruchomisz kilka takich programów i poszatkują ci pamięć aż milo...

@Kaczus2B: dlaczego niby, skoro ostatnie użycie jest w funkcji, która wywoływana jest przed returnem z maina? wtedy delete byłoby wsadzone dokładnie przed returnem, na samym końcu

Nie zatrudniłbym żadnego z mędrków tak podchodzących do sprawy.

śmiechłem
  • Odpowiedz
@kuhar: Bo przecież napisał "Program nie zwolni pamieci" Skoro jej nie zwolni, system może też jej nie zwolnić. Kilka takich uruchomień i mamy różne niezwolnione kawałki pamięci.
  • Odpowiedz
@Kaczus2B: w takim przypadku ma to oczywiście sens. Jednak w praktyce każdy system operacyjny czyści pamięć po zakończonych programach. Pokazałeś przykład, że istnieją egzotyczne systemy, które tego nie robią, ale wtedy jakiekolwiek wycieki pamięci będą miały tragiczne skutki.
  • Odpowiedz
@kuhar: Tak będa miały. W systemach, które czyszcza pamięć tez skutki będą.
1) Jeśli wyczyści dobrze - to i tak będzie zużyte do tego celu więcej zasobów
2) użycie takich funkcji spowoduje problemy w przyszłości - słynny błąd w obsłudze silnika javascriptu - teraz zauważ, że każda nowa przeglądarka stron www zakładki odpala jako nowe procesy - po to by czyścić brudy jakie silnik zostawia po sobie, bo od kilku
  • Odpowiedz
@Kaczus2B:

1) Jeśli wyczyści dobrze - to i tak będzie zużyte do tego celu więcej zasobów

Nie rozumiem, dlaczego? Masz może link do jakiegoś artykułu czy innego źródła mowiącego o podobnej tematyce? Nie znam się za bardzo na systemach operacyjnych, chętnie bym coś przeczytał.

2) użycie takich funkcji spowoduje problemy
  • Odpowiedz