Programując w c++ kiedy używać operatora new? A dokładniej kiedy korzystać z pamięci stosu (stack), a kiedy sterty(heap)?
#naukaprogramowania #cpp #glupiepytaniametoksyfenidyny #jezykc
#naukaprogramowania #cpp #glupiepytaniametoksyfenidyny #jezykc
Wszystko
Najnowsze
Archiwum
źródło: comment_SbDfFjxVYucbxDPHdJuqg6upaDEPQy9K.jpg
Pobierz
źródło: comment_GXPs38FcONFdcE7h1DxYexV18OSOztn9.jpg
Pobierz
źródło: comment_ZFeNfXBq45f3EvRWBEmyLtGelKFqup2C.jpg
Pobierzlong int lol = 2;
int lol = 2L;
źródło: comment_rRVA6JKkKThdcBe1U60mk9LCWPbynYQZ.jpg
Pobierz
źródło: comment_0aQcY962Q8bjyVxy1lQw2ZCJLSt6LrGe.jpg
Pobierz
źródło: comment_FBME9bLlokhVcVbVTVJEwhXj16RMv51u.jpg
Pobierz, -I` i pokrewnych. Żadnych trików z makrami czy alternatywnymPodejrzewam, że to są wielobajtowe znaki
f:unsigned int m(unsigned short a, unsigned short b) {
return a * b;
}
unsigned int f()int. Zakładając 16-bitowe shorty i 32-bitowe inty, to o ile mnożenie dwóch unsignedshortów zmieściłoby się w unsignedincie, to już nie w zwykłym incie. Kompilator widzi, że 49999×49999 jest większe niż INT_MAX i że wynik m musiał się zmieścić w nieujemnym incie, więc wie, że niemożliwym wg
źródło: comment_Bw69WoxVAMeolTmVzqsoDz9OFPnn2jY0.jpg
Pobierz
źródło: comment_UIAMFtM85dJjzb64xiqMPso3K1Jdd1LE.jpg
PobierzRegulamin
Reklama
Kontakt
O nas
FAQ
Osiągnięcia
Ranking
mam tu funkcję, która ma na celu zwiększenie rozmiaru istniejącej tablicy.
Jest to funkcja int *increaseSize(int* A, int freqCount).
W tym przypadku robi to dwukrotnie.
Jak widać po prawej stronie, tablica przed zmianą rozmiaru jest elegancko wypełniona wartosciami, wszystko chodzi dobrze...
natomiast po uruchomieniu funkcji (cześć po lewej stronie), choć niektóre wartości stoją dobrze na swoim miejscu, to inne zmieniają na jakieś
źródło: comment_O4DNfJqD2MaX1ImipBLd3O7wTHMqoVNc.jpg
Pobierzhttp://kaczus.ppa.pl/art/Skrzynia_porad,18.html#argpointer
Jak chcesz zmienic adres wskaznika wewnatrz funkcji, to musisz przekazac wskaznik na niego czyli
int **ATo raz, ale blad ktory mu wywala jest w funkcji freqRepeat i prawdopodobnie przez
realloc(A, 2*sizeof(int)), bo alokuje tablice na rozmiar 2 intow, a nie dwukrotnosci starej tablicy.
Jak juz uzywasz jednego stylu przekazywania wartosci: zwracania lub przez wskaznik to lepiej badz konsekwentny.