Wskaźnik jako parametr funkcji alokującej pamięć

0

Witam, kombinuję jak napisać funkcję alokującą pamięć tak, żeby była ona dostępna również poza nią (nie tworzyła się tylko jako kopia-lokalnie). Mam taki kod:

 
bool tab1D(int *t, int n)
{
	if (n > 0) {
		if (t == 0)	{
			try	{
				t = new int[n];
			}
			catch (bad_alloc) {
				return false;
			}
			return true;
		}
		else
			return false;
	}
	else
		return false;
}

int main()
{
	int x = 0;
	int *tab = 0;
	cout << "Podaj ile chcesz zaalokowac pamieci: " << endl;
	cin >> x;

	tab1D(tab, x);

	tab[0] =6;//tutaj program siada

	freetab1D(tab, x);
	
	system("pause");
	return 0;
}
2
bool tabid(int*& t, const size_t n) {
	if(n > 0 && t == nullptr) {
		try {
			t = new int[n];
			return true;
		} catch(bad_alloc) {}
	}
	return false;
}
0

Dzięki wielkie, też myślałem o referencji, ale znaki wstawiałem w odwrotnej kolejności, czyli int &*t

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