dzaku
#cpp #cpp11 da się czy się nie da przykleić wskaźnik do nie do tablicy lecz jej pola ? #pytaniedoeksperta

long long int counter[MAX_NUM_TH];
long long int* wsk_array_ele_io;
wsk_array_ele_io=counter[my_data->thread_id];
//(...)
wsk_array_ele_io+=1;
1
  • Najlepsze
  • Wszystkie komentarze
megawatt
#cpp11 da się czy się nie da przykleić wskaźnik do nie do tablicy lecz jej pola


@dzaku: robisz to źle, albo C++11 albo arytmetyka wskaźników
3
DK13
@dzaku: po prostu weź adres operatorem & ?
1
inplaz
@dzaku:
wskarrayeleio = &counter[mydata->threadid];
lub
wskarrayeleio = (counter + mydata->threadid);
1
ly000
da się czy się nie da przykleić wskaźnik do nie do tablicy lecz jej pola


@dzaku: tablica nie ma pól, tylko elementy
1
C.....m
C.....m
@dzaku: koledze chodzi o to, że w C++11 i nowszych odradza się grzebanie bezpośrednio na wskaźnikach jeśli nie trzeba. Ogółem prawdopodobnie masz skopany design kodu skoro takie rzeczy musisz robić (po nazewnictwie zmiennych też mógłbyś się czegoś nauczyć ;)).

A ogółem jeszcze lepiej to nie korzystać z gotowych tablic tylko:
- jeśli znasz rozmiar podczas kompilacji to std::array,
- a jak nie to std::vector z opcją resize(n) jeśli znasz z góry rozmiar podczas
1
MozeSuker
@dzaku: @ly000: a każdy element ma swój adres. Więc, tak możesz przekazać wskaźnik na konkretny element.
0
dzaku
@MozeSuker: @ly000: @inplaz: @DK13: Dzieki udalo się :)
0
dzaku
@megawatt: rozwin bo ja sie nie znam :D
0