Dynamiczna alokacja tablicy - użyty jest wskaźnik czy tablica?

0

Napisałem prosty program, lecz chciałem się dowiedzieć czy w pętli for użyty zostaje wskaźnik czy tablica ? Bo sądzę, że wskaźnik(w pętli for przesuwa się o 1 adres dalej), ale nie jestem pewien.
Program:

 #include <iostream>
using namespace std;

char * producent(void);

int main()
{
	int *tablica;
	tablica = new int[30];

	for(int i = 0; i < 30 ; i++)
	{
		tablica[i] = i + 1;
		cout << tablica[i] << endl;;
	}

	system("pause");

}
0

Tak zostaje użyty. Możesz to poznać po tym, że występuje jego nazwa.

Przy okazji: jeśli alokujesz pamięć, to ją zwolnij. Jak już musisz używać new[] to we wszystkich miejscach, gdzie możesz opuścić zakres i zgubić referencję do zaalokowanej pamięci powinieneś poprawnie użyć delete[].

0

Zostaje użyta tablica wskazana przez wskaźnik tablica (mętne nazewnictwo IMHO).

(w pętli for przesuwa się o 1 adres dalej)

Przypisujesz do tablica[i] wartość i+1, gdzie tu jest jakieś przesunięcie? Natomiast zamiast

tablica[i] = i + 1;

można napisać (choć brzydkie):

*(tablica+i) = i + 1;

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