gmp-ben mátrix értékadása

 ( TJ | 2011. szeptember 2., péntek - 16:11 )

Sziasztok!

Már elég régóta ezzel szöszölök, de nem sikerült megoldanom. GMP-ben (GNU Multi-Precision Library) szeretnék egy mátrixnak értéket adni, anélkül hogy egyesével kelljen felsorolnom.

mpf_set_str (mpf_t rop, char *str, int base) //az értékadás függvénye, ahol a középső tagban kell az értéket megadni

Most mindenféle kísérletezgetés után, azzal próbálkoztam, hogy egy több dimenziós char típusú tömböt hozzak létre, ami tartalmazza az értékeket, és ezt adjam át majd egy for ciklussal. A probléma ott van, hogy nem tudom a tömböt létrehozni.

Mindenféle megoldásra vevő lennék,
előre is köszi!

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Úgy látom nem túl világos a kérdés. Szóval ugyanezt szeretném elérni, csak egy char típusú tömbbel.

std::string tau_szoveg [regiok_szama][regiok_szama] = {
{"1","roka","1","1","1","1","1"},
{"1","1","1","1","1","1","1"},
{"1","1","1","1","1","1","1"},
{"1","1","virgács","1","1","1","1"},
{"1","1","1","1","1","1","1"},
{"1","1","1","1","1","1","1"},
{"1","1","1","1","1","1","1"}
};

Az std::string -et cseréld le const char* -ra

Most úgy tűnik nekem, hogy a tau_szoveg[1][2] nem a róka szót tartalmazza Habár lehet tévedek.

tombindex 0-tol kezodik, persze, hogy nem az..

--
Always remember you’re unique, just like everyone else.

Ez tényleg nagyon béna volt...

Úgy tűnik működik. A kérdésem csak az, hogy miért nem simán char kell, és mi ez a const char*?

köszi!

A char* az a c-s "string". Gyakorlatilag egy karaktertombre mutato pointer, es a chartombot \0 zarja. Ezzel gyakorlatilag felvettel a memoriaban egy rakas olyan tombot, aminek a 0. karaktere '1', es az utana kovetkezo karakter nulla erteku ('\0'), ezek a "1" stringjeid. Meg lefoglaltal "roka" tombot is, (sorban 'r','o','k','a','\0' ertekekkel), meg amit meg beirtal. Valamint letrejott egy 2dimenzios tomb (gyakorlatilag egydimenzios tombokbol allo egydimenzios tomb), benne olyan pointerekkel, amik sorban ezekre a "stringjeidre" (pontosabban ezek nulladik indexu karakterere) mutatnak.
A const konstanssa teszi a mutatot, hulyeseg ellen ved valamennyire, illetve a forditonak segithet kioptimalizalni dolgokat (ha mar tud valamit, es tudja, hogy nem valtozik, akkor bizonyos esetekben nem szamolja ujra).
Ha csak siman char-t irnal a char* helyere, nem stringed lenne, hanem 1-1 kulonallo karaktered, pl. 10-et mar nem tudnal bevinni (tul hosszu lenne). Ezert irtak meg a fuggvenyt ugy, hogy char*-ot kerjen, es ezert kell olyat adni neki amit ker.

Jotanacs: elobb egy kis C alapot vegyel fel, mert mutatok nelkul nehez lesz a tovabblepes (ugyse fog menni nelkule, csak szivsz). Egyebkent nem ismerem a GMP-t, de attol meg nagyon valoszinunek tartom.

--
Always remember you’re unique, just like everyone else.

Köszi! Akkor mindenféleképpen érdemes lenne átnéznem a mutatókat. Azt hittem nem lesz rájuk szükségem, ezért nem néztem át. Pedig még nagyon rég készítettem Pascalban láncolt listát.