Aktywne Wpisy
Sylvio19 +1022
Treść przeznaczona dla osób powyżej 18 roku życia...
erebeuzet +96
Nienawidzę klientów, którzy pierwszy raz przyjeżdżają do mnie do #pracbaza i nie znając mnie wyciągają do mnie rękę i mówią "cześć".
Oni myślą, że w ten sposób załatwią sobie jakąś promocje czy jaki uj?
#bekazpodludzi #kolchoz
Oni myślą, że w ten sposób załatwią sobie jakąś promocje czy jaki uj?
#bekazpodludzi #kolchoz
int **array;
int *writeElement(int idx) {return array[idx];}
void createArray(void) {array=new int*[20];}
int main()
{
createArray();
writeElement(5)=new int[10]; //<- o taki
return 0;
}
Znalazłem obejście problemu poprzez przekazywanie elementu do zapisania jako argument:
void writeElement(int idx, int *element) {array[idx]=element;}
ale chciałbym dowiedzieć się, czy w ogóle można zapisać to w sposób jak powyżej
#cpp
Wychodzę z założenia że skoro:
array[5]=new int[10]; // działa
to:
int * write(void) {return array[5];}
write()=new int[10]; // też powinno
#define writeElement(idx,array) (array[idx])
(⌐ ͡■ ͜ʖ ͡■)
writeElement(5,array)=new int[10]; //<- i to działa
Spróbuję zrobić jeszcze to samo, ale bez define, a w oparciu o constexpr
To samo w createArray, operator new zwraca Ci wskaźnik na podany typ. W tym przypadku przypisanie array = new int[20] to tak jakbyś napisał, że do int** przypisujesz int*.
int * * array;
int * writeElement(int idx) {return array[idx];}
void createArray(void) {array=new int * [20];}
int** array;
int * & writeElement(int idx) { return array[idx]; }
void createArray(void) { array = new int*[20];
Dlczego kontenery stl mają zbyt małą wydajność? Co jest nie tak z std::vector?
@rotflolmaomgeez: operator[]() w std::map/unorderd_map i paru innych standardowych kontenerach zwraca referencje.