C++ ban hogyan hozok létre egy n elemű tömböt (nem vektor!!!) dinamikusan, úgy hogy minden eleme 1 legyen?
n -t már beolvastuk
Mármint van erre megoldás, vagy mindenképp kell egy for ciklus ahol feltöltöm az összes elemet ugyanarra a számra?
Mindegyik elem 1 kellene legyen.
Az az érdekes hogy
int * t = new int[n] {0}
így például működik, mind az n elem 0 lesz, de ha {1}-t írok akkor csak a legelső elem lesz feltöltve 1-el. Mármint, profik, ha erre nincs megoldás akkor csak írjátok, hogy nincs és akkor inicializálom az összes elemet egy for ciklussal, csak így nem igazán tűnik praktikusnak...
Mindenkeppen fel kell toltened, max for ciklus helyett hasznalhatsz pl. std::fill_n-t.
"csak így nem igazán tűnik praktikusnak"
Eleve nem praktikus C++-ban tombot hasznalni vektor helyett, hacsak nincs ra kimondottan valami okod.
így például működik, mind az n elem 0 lesz
Dehogy működik. :/
Csak alapban nullára inicializálja, vagy nem inicializálja, de tiszta memórialapot kapott a tömb. Az meg alapban nulla tartalmú.
#4 Nem fog működni. A memset byte-okat ír, az int pedig jellemzően legalább 4 byte. Szóval ha memsettel próbálná beállítani az értéket, akkor a tömb nem 1-esekkel lenne tele, hanem (4 byte-os int esetében) 16843009 értékekkel, mivel az int mind a 4 byte-ja 1-re lenne átírva.
Nincs mese, marad a ciklus.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!