miksei seuraava ratkaisu toimi MSVisual C -kääntäjällä, vaikka se käsittääkseni on C -standardin mukainen?
struct NODE
{
int entry;
int *nxt;
};
int main()
{
NODE *first = NULL;
NODE *current, *next;
int i = 0;
while ( i < 10 )
{
next = new NODE;
cin >> next->entry;
if ( !first )
first = next;
else
{
current = first;
while (current->nxt)
current = current->nxt;
current->nxt = next;
}
}
return 0;
}
Kääntäjä herjaa siis noista sijoituksista, "current = current->next" ja "current->nxt = next". Miten tämä pitäisi toteuttaa VisualStudiossa?
struct NODE
{
int entry;
int *nxt;
};
int main()
{
NODE *first = NULL;
NODE *current, *next;
int i = 0;
while ( i < 10 )
{
next = new NODE;
cin >> next->entry;
if ( !first )
first = next;
else
{
current = first;
while (current->nxt)
current = current->nxt;
current->nxt = next;
}
}
return 0;
}
Kääntäjä herjaa siis noista sijoituksista, "current = current->next" ja "current->nxt = next". Miten tämä pitäisi toteuttaa VisualStudiossa?
Vastaukset 9
Vanhimmat
structissa näkyy ainakin olevan int* ja sijoitat siihen NODE*. Pitäis olla samaa tyyppiä..
Ai perkele, niinpä onkin! Kiitos! Aina tollaisia lapsuksia ei näköjään itse huomaa :-)
Tekikö tuo ohjelma käännöksen jälkeen mitään?
Taisi näkyä sinisessä ikkunassa rutosti pääsisäishexoja ilman luutia...hei katsokaa noita...ai noitako tuolla...eikun noita tuolla...herranjestas noita...onkohan se paha atk-noita...jumannngggeuta nyt se meni tonne atk-väkijoukkoon haastaan riitaa...älä hitossa, laittakaa sille noidalle luuta kurkkuun...joo luuta kurkkuun vaan...hei nyt se tulee tänne...kääk...älä ole näkevinäsi sitä...kuwumpifff tweiffttä käwffki twunggea muwwe wwuudan kuwwkguunnggh...
Ei, mutta ei sen tarvinnutkaan. Se on vasta alku toteutukselle
Nipotusta tuosta NODE-nimeämisestä. C/C -koodissa (ja monissa muissakin kielissä) on erittäin vahvasti tapana kirjoittaa vain vakiot ja makrot kokonaan ISOLLA ja struct-tyypit joko tyyliin Node tai node (C:ssä lähinnä).
Nimeämis- ja muut käytännöt vaihtelevat hieman, eikä ole olemassa sitä 'Ainoaa Oikeaa'. Olennaista on käyttää samaa tyyliä läpi koko projektin. Esimerkki:
http://geosoft.no/development/cppstyle.html
Lisää löydät hakusanoilla "c coding style" tms.
Ei mitään nipotusta, vaan kiitos vinkistä. Näin uutena koodaajana niitä ei koskaan tule liikaa.
...nimeämistäkin hyödyllisempi vinkki. Kannattaa alustaa nuo noden kenttien arvot samalla kun luot uuden noden. Nykyinen toteutus toimii tuurilla niin pitkään, kun structille varattu muisti sattuu olemaan kivasti nollattua. Siihen ei saa luottaa.
http://www.cplusplus.com/forum/beginner/944/
Tattista! Täältähän näyttää saavan oikeasti hyödyllisiä neuvoja, vaikka aluksi sen suhteen olinkin skeptinen