Przekazanie obiektów struktury i zmiennych funkcji globalnej do innej funkcji

0

Witam, mam pewien problem nad którym już trochę się główkuję i chyba się pogubiłem, może ktoś mnie naprostuje :P

W pewnym pliku tworzę strukturę:

struct Dist {
	float *fC, *fE, *fW, *fS,...
};

W innym tworzę obiekt struktury i wypełniam danymi

__global__ void LBM(int *map, Dist cd, Dist od)
{
	int tix = threadIdx.x;
	int ti = tix + blockIdx.x * blockDim.x;
	int gi = ti + LAT_W*blockIdx.y;
	int biy = blockIdx.y;
         ....
	//Streaming
	od.fC[gi] = fi_C;
   	od.fS[gi] = fi_S;
	od.fN[gi] = fi_N;
   	od.fE[gi] = fi_E;
   	od.fW[gi] = fi_W;

I moje pytanie brzmi jak mogę np. pobrać/wyświetlić dane, "od.fC[gi]" itd. z innej funkcji. Generalnie przekazanie strutkury robię w ten sposób:

void showData(struct Dist *od){
       printf("Dist %f", *od->fS);
}

ale mam problem ze zmienną "gi". Będę wdzięczny za wyjaśnienie.

0

fS to tablica, więc gi jest liczbą, musisz ja znać w miejscu którym chcesz pobrać dane z tablicy fS. W miejscu w którym zapisujesz dane do tablicy obliczasz tą zmienną, Możesz ja na nowo obliczyć, pobrać z wejścia, przekazać do metody, zrobic globalna czy cokolwiek.

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