Warning: Declaration of action_plugin_subjectindex_indexer::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/subjectindex/action/indexer.php on line 15

Warning: Declaration of action_plugin_mathjax_enable::register(Doku_Event_Handler &$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/mathjax/action/enable.php on line 62

Warning: Declaration of action_plugin_googleanalytics::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/googleanalytics/action.php on line 40

Warning: Declaration of action_plugin_folded::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/folded/action.php on line 40

Warning: Declaration of action_plugin_hidden::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/hidden/action.php on line 28

Warning: Declaration of action_plugin_include::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/include/action.php on line 354

Warning: Declaration of action_plugin_tag::register(&$contr) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/tag/action.php on line 175

Warning: Cannot modify header information - headers already sent by (output started at /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/subjectindex/action/indexer.php:15) in /data/web/virtuals/28604/virtual/www/subdom/bo/inc/auth.php on line 532

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /data/web/virtuals/28604/virtual/www/subdom/bo/inc/auth.php on line 818

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /data/web/virtuals/28604/virtual/www/subdom/bo/inc/parser/handler.php on line 1376

Warning: Declaration of SI_EntryDefault::match($text) should be compatible with SI_Entry::match() in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/subjectindex/plugins/EntryDefault.php on line 68

Warning: Declaration of SI_EntryTag::match($text) should be compatible with SI_Entry::match() in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/subjectindex/plugins/EntryTag.php on line 42

Warning: Declaration of SI_EntryVerse::match($text) should be compatible with SI_Entry::match() in /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/subjectindex/plugins/EntryVerse.php on line 1280

Warning: preg_match(): Compilation failed: invalid range in character class at offset 4360 in /data/web/virtuals/28604/virtual/www/subdom/bo/inc/parser/lexer.php on line 118
A PCRE internal error occured. This might be caused by a faulty plugin

Warning: Cannot modify header information - headers already sent by (output started at /data/web/virtuals/28604/virtual/www/subdom/bo/lib/plugins/subjectindex/action/indexer.php:15) in /data/web/virtuals/28604/virtual/www/subdom/bo/inc/actions.php on line 215
jazykc:dynamicka-vicerozmerna-pole [Bo.bule]

====== Dynamická vícerozměrná pole ====== * [[dox>dynamicka-vicerozmerna-pole/soucina-matic.c|Součin_matic]] * [[dox>dynamicka-vicerozmerna-pole/cetnost-znaku-v-poli-retezcu.c|Četnost_znaku_v_poli_řetězců]] Níže jsou uvedeny příklady všech možností vytvoření dynamického dvourozměrného pole. Pro vytvoření dynamických polí s více než dvěma rozměry lze použít stejných principů. Pro všechny níže uvedené možnosti platí, že přístup k prvkům pole je stejný jako u statického pole. Varianty pole se liší pouze svým tvarem (stejně vs. různě dlouhé řádky), vnitřním uspořádáním prvků v paměti a tím, které rozměry je možné určit až v průběhu výpočtu (a který je naopak nutné zadat celočíselnou konstantou již při psaní programu). ======Dvourozměrné pole jako pole ukazatelů====== Jedná se o typ pole s různě dlouhými řádky. Počet řádků je nutné určit pevně konstantou, naopak velikosti řádků lze specifikovat až v průběhu výpočtu. Jednotlivé řádky nejsou v paměti uloženy za sebou v jednom bloku. Tento typ pole se v praxi používá relativně často (např. pole textových řetězců). Příklad vytvoření pole: <code c> int *pole[2]; pole[0]=(int *)malloc(3 * sizeof(int)); pole[1]=(int *)malloc(3 * sizeof(int)); </code> ======Dvourozměrné pole jako ukazatel na pole====== Jde o méně používaný typ pole. Druhý rozměr je dán pevně, první je možné určit až v průběhu výpočtu. Jednotlivé řádky mají stejnou délku a jsou uloženy v jednom bloku paměti za sebou (stejně jako u statického pole). Příklad: <code c> int (*pole)[3]; pole = (int(*)[3])malloc(2 * 3 * sizeof(int)); </code> ======Dvourozměrné pole jako ukazatel na ukazatel====== Oba rozměry pole je možné určit až v průběhu výpočtu. Řádky mohou mít různou délku a jsou obecně uloženy v různých blocích paměti. Příklad: <code c> int **poleD; poleD = (int **)malloc(2 * sizeof(int *)); poleD[0] = (int *)malloc(3 * sizeof(int)); poleD[1] = (int *)malloc(3 * sizeof(int)); </code> ======Pole textových řetězců====== Toto dvourozměrné pole se používá často v programech, které pracují s textem. Jde o pole typu "pole ukazatelů" nebo "ukazatel na ukazatel". Pokud použijeme jen jeden operátor indexu, můžeme pohodlně pracovat s celým textovým řetězcem na daném řádku. Příklad: <code c> char *p_text[4]; p_text[0] = "prvni"; p_text[1] = "druhy"; p_text[2] =(char *)malloc(6 * sizeof(char)); strcpy(p_text[2], "treti"); p_text[3] = "ctvrty"; printf("%s\n", p_text[1]); </code> ---- odkaz cc, upol/sujc


Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /data/web/virtuals/28604/virtual/www/subdom/bo/inc/auth.php on line 818
jazykc/dynamicka-vicerozmerna-pole.txt · Last modified: 2015/01/15 20:47 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0