Erre miért ad hibát?
Figyelt kérdés
Segmentation fault ad erre
int teszt=5;
char *str[teszt];
viszont ha megadom a méretét és nem a változóból töltöm be akkor nincs baj vele.
char *str[5];
az elsővel mi lehet gond?
2018. febr. 16. 03:23
1/7 anonim válasza:
Tömb méretet nem lehet változóból inicializálni.
2/7 anonim válasza:
#1 Ez azért nem egészen van így. C-ben lehet (C99-es szabvány óta), C++ esetében meg nem ismerek olyan fordítót, ami hisztizne rá.
Tehát hacsak nem egy ősrégi szabvány szerint fordított C kódról van szó, nem kéne hibának lennie.
4/7 anonim válasza:
Lehet, de közben mutatók tömbjét sikerült létrehozni...
5/7 anonim válasza:
Mármint azért kérdeztem, mert lokális változóként működhet, de a globális változók (akár tömb pointerek) másként fordulnak bele a kódba, és ott lazán lehet, hogy konstanst vár.
6/7 anonim válasza:
Ja, és nem elemek típusára gondolok, hanem magára az str változóra. Egy globális tömb (elemtípustól függetlenül) máshova kerül a memóriában, és nem biztos, hogy futásidőben lehet pl. elemszámot választani.
7/7 anonim válasza:
Biztos hogy erre ad segfaultot? Nem amikor hasznalod? Debuggerrel soronkent idaig jutottal?
Ha 1-2 sornal tobb a relevans kod, akkor p@stebinre toltsd fel inkabb.
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
A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!