Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Konwersja wskaźnika na const


Rekomendowane odpowiedzi

Opublikowano

Cześć,

tworzę sobie dynamiczną tablicę:

double ** create_arr(int N, int M)
{
	double **T = new double*[N];
	for (int i = 0; i < N; ++i)
	{
		T[i] = new double[M];
	}
	return T;
}

double **T = create_arr(N, M);

Potem sobie wypełniam i wypisuje w funkcjach gdzie parametrem jest double **T
np:
 

void fn(xxx, double **T, zzz){...}

Jak dotąd nie ma problemu i wszystko jest ok.
Jednak w kolejnej funkcji muszę przekazać tą tablice do parametru:

void fnc(xxx, const double **T, zzz){...}

I tutaj kompilacja oczywiście się sypie - nie można przekonwertować double** do const double**
Jak w wywołaniu funkcji w odpowiednim parametrze przekazać tablice aby funkcja ją prawidłowo przyjmowała?

wipek.pl

Opublikowano

Zmień ten parametr w fnc na:

const double* const* T

Nie da się tak po prostu skonwertować double** na const double**, bo wtedy można by było zrobić coś takiego:

double** p = new double*;
const double** cp = p; // tego nie można zrobić
const double x = 0;
*cp = &x;
**p = 42; // właśnie zmodyfikowaliśmy x

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...