Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: Ongelma liittyen pointtereihin

Atropos [04.08.2005 12:35:36]

#

Ohjelmani sisältää luokan, jossa oleva funktio saa argumentin tyyliin int* p[4][4]. Pääohjelmasta kutsunfunktiota kaksiuloitteisella taulukolla, joka sisältää samankokoisen kaksiuloitteisen taulukon osoitteet jokaiseen sen alkioon. Tämän funktion on tarkoitus kopioida tähän alkuperäiseen taulukkoon uudet arvot lauseella memcpy(*p,taulu,16* sizeof(int));. Ohjelma menee mallikkaasti kääntäjästä läpi, mutta alkuperäinen taulu pysyy tyhjänä. Missä voisi vika olla?

FooBat [04.08.2005 21:17:11]

#

Vikahan voi olla ihan missä vaan. Pistäs koodia näkyviin oleellisilta osin (muuttujien määrittely, tuo funktio ja pääohjelmasta asiaan liittyvä kohta) niin voi antaa vähän paremman veikkauksen.

rutkis [08.08.2005 12:14:05]

#

Eli tuohon "tauluun" haluat kopioida tuon "p":n arvot?
Eikös memcpy ota parametrit toisinpäin? Ensimmäinen on minne ja toinen mistä?

Metabolix [08.08.2005 16:37:17]

#

Onko edes taattua, että kaksiulotteisen taulun kohdat ovat tuolla tavalla peräkkäin? Jos se on dynaamisesti varattu, niin sitten ei ainakaan. Mutta kysymyksesi oli joka tapauksessa epäselvästi muotoiltu. Et muuten tarvitse parametrina osoitinta, koska taulu on jo itsessään osoitin.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta