prośba o sprawdzenie

0

dostałem takie polecenie: Tablica zalokowana dynamicznie. Drukowanie liczb wspak. Wskaźnik do przechwycania tablicy.
I proszę sprawdzi czy wszystko w tym kodzie zostało uwzględnione :

#include <iostream>

using namespace std;

int main()
{
    int n;
    cin>>n;
    int *tab = new int[n];
    for(int i=0; i<n; i++)
    {
        cin>>tab[i];
    }
    int suma=0;
    for(int j=n-1; j>=0; j--)
    {
        cout<<tab[j];
    }

    return 0;
}

1

Pachnie mi tu wyciekiem pamięci.

1

Jak już używasz new int to musisz również wywołać delete[] tab aby zwolnić przydzieloną pamięć po jej użyciu.

0

Czy teraz jest napisane porawnie ? :)

#include <iostream>
 
using namespace std;
 
int main()
{
    int n;
    cin>>n;
    int *tab = new int[n];
    for(int i=0; i<n; i++)
    {
        cin>>tab[i];
    }
    int suma=0;
    for(int j=n-1; j>=0; j--)
    {
        cout<<tab[j];
    }
   delete[] tab;
    return 0;
}
 
0

A ta zmienna suma to do czego? :P

0
furious programming napisał(a):

A ta zmienna suma to do czego? :P

Ona w tym przypadku nie potrzebna, po prostu w dalszej części kodu bede musiał jej użyc :D

0

Dobry zwyczaj, deklaruj zmienne których używasz. Pilnuj tego nawet w tak prozaicznych przypadkach,
bo kiedyś zaczniesz tak pisać kod i zapomnisz kiedyś co trzeba uzupełnić.

0

poczytaj o std::array, tu to po prawdzie nic to nie wnosi nowego specjalnie ale na przyszłość się przyda.Ponadto zmieniło by ci z pętle np. obczaj sobie przykład
http://en.cppreference.com/w/cpp/container/array
ostatnie dwie linie przykładu.

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