<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=12295&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-07-14T20:35:04+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=12295&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-07-14T20:35:04+01:00</updated>
<published>2015-07-14T20:35:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134553#p134553</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134553#p134553"/>
<title type="html"><![CDATA[Re: Tablica struktur , obliczenie jej rozmiaru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134553#p134553"><![CDATA[
<div class="quotetitle">afrikanerhart napisał(a):</div><div class="quotecontent"><br />Wyobraź sobie że wykorzystujesz rozmiar tablicy struktur w paru miejscach programu.<br /></div><br />No wyobrażam sobie, i nadal nie widzę problemu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 14 lip 2015, o 20:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[afrikanerhart]]></name></author>
<updated>2015-07-14T19:53:02+01:00</updated>
<published>2015-07-14T19:53:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134542#p134542</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134542#p134542"/>
<title type="html"><![CDATA[Re: Tablica struktur , obliczenie jej rozmiaru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134542#p134542"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />Stosowanie dynamicznie alokowanych tablic w C to bardzo rzadka sprawa <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> można powiedzieć prawie nie używana ... Dlatego rozwiązanie kolegi Zaba jest dobre.<br /><br />Za to uważam, że właśnie szczególnie przy stałej wielkości tablicach upieranie się na obliczanie w trakcie programu ich wielkości to coś zupełnie niepotrzebnego bo i tak zawsze znamy taką wielkość i nawet bez obliczania w preprocesorze wystarczy sobie zdefiniować stałą z wielkością tablicy i po zawodach. Szybciej, lepiej i przyjemniej. Co w efekcie pokazuje, że jak ktoś już ma ew ogromną jakąś strukturę i nie chce mu się &quot;na piechotę&quot; policzyć jej rozmiaru no to znowu - rozwiązanie kolegi Zaba jest przydatne <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /></div><br /><br />Wyobraź sobie że wykorzystujesz rozmiar tablicy struktur w paru miejscach programu. <br />Z jakich względów przy kompilacji zmienisz często ręcznie rozmiar tablicy. <br />Jak zapomnisz uaktualnić rozmiar tablicy to w jakimś dziwnym miejscu program &quot;wyłoży się&quot; i możesz mieć kilka dłuuugich chwil zdziwienia i podniesionego ciśnienia. Wszystko jest w porządku a program nie działa, co jest grane.....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1233">afrikanerhart</a> — 14 lip 2015, o 19:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2015-07-14T13:40:48+01:00</updated>
<published>2015-07-14T13:40:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134511#p134511</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134511#p134511"/>
<title type="html"><![CDATA[Re: Tablica struktur , obliczenie jej rozmiaru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134511#p134511"><![CDATA[
O dzięki, teraz to się klei. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1774">xor</a> — 14 lip 2015, o 13:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2015-07-14T08:32:37+01:00</updated>
<published>2015-07-14T08:32:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134485#p134485</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134485#p134485"/>
<title type="html"><![CDATA[Re: Tablica struktur , obliczenie jej rozmiaru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134485#p134485"><![CDATA[
A jednak nie pasuje <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" />. Czepiam się tego:<br /><div class="quotetitle">mokrowski napisał(a):</div><div class="quotecontent"><br />W przypadku przekazania &quot;gołego wskaźnika&quot; (nie tablicy), wywołuje asercję na etapie kompilacji z powodu (zamierzonego) dzielenia przez zero.<br /></div><br />Jeśli tak to miało by działać to kompilacja Twojego przykładowego programu powinna się wywalić na linii 31., a tak nie jest. Wywala się na 35. (po odkomentowaniu) ale to oczywiste i nie o tym mówi powyższy cytat (<em>fake_var</em> nie jest wskaźnikiem).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1774">xor</a> — 14 lip 2015, o 08:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2015-07-13T11:47:06+01:00</updated>
<published>2015-07-13T11:47:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134392#p134392</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134392#p134392"/>
<title type="html"><![CDATA[Re: Tablica struktur , obliczenie jej rozmiaru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134392#p134392"><![CDATA[
Dałbyś słówko wyjaśnienia. No dobra, spróbuję sam... <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><br />Interesuje nas mianownik bo licznik jest oczywisty, a konkretnie: <br />[syntax=c](sizeof(x) % sizeof(0&#91;x&#93;))[/syntax]<br />Dla tablicy będzie zawsze równe zero bo nie może istnieć niecałkowity element tablicy. Łatwizna. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br />Dla wskaźnika zawsze równe jeden bo...no właśnie...<br /><em>sizeof(ptr)</em> to wielkość wskaźnika, dla avr równe 2.  <em>0[x]</em> to inaczej <em>*(0+x)</em>, czyli pierwszy element tablicy, więc jeśli wskaźnik <em>x</em> jest typu <em>int*</em> to <em>sizeof(0[x])</em> będzie równe 2? Nie pasuje <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":-(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1774">xor</a> — 13 lip 2015, o 11:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-07-13T07:22:12+01:00</updated>
<published>2015-07-13T07:22:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134354#p134354</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134354#p134354"/>
<title type="html"><![CDATA[Re: Tablica struktur , obliczenie jej rozmiaru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134354#p134354"><![CDATA[
Stosowanie dynamicznie alokowanych tablic w C to bardzo rzadka sprawa <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> można powiedzieć prawie nie używana ... Dlatego rozwiązanie kolegi Zaba jest dobre.<br /><br />Za to uważam, że właśnie szczególnie przy stałej wielkości tablicach upieranie się na obliczanie w trakcie programu ich wielkości to coś zupełnie niepotrzebnego bo i tak zawsze znamy taką wielkość i nawet bez obliczania w preprocesorze wystarczy sobie zdefiniować stałą z wielkością tablicy i po zawodach. Szybciej, lepiej i przyjemniej. Co w efekcie pokazuje, że jak ktoś już ma ew ogromną jakąś strukturę i nie chce mu się &quot;na piechotę&quot; policzyć jej rozmiaru no to znowu - rozwiązanie kolegi Zaba jest przydatne <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 13 lip 2015, o 07:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2015-07-12T22:38:51+01:00</updated>
<published>2015-07-12T22:38:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134344#p134344</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134344#p134344"/>
<title type="html"><![CDATA[Re: Tablica struktur , obliczenie jej rozmiaru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134344#p134344"><![CDATA[
<div class="quotetitle">Zaba napisał(a):</div><div class="quotecontent"><br />Ale może nie zrozumiałem co kolega autor ma na myśli<br /></div><br /><br />Ale dzieki nam autor ma teraz wiecej opcji do wykorzystania jako potencjalne rozwiazania <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4344">RafPe</a> — 12 lip 2015, o 22:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2015-07-12T22:22:04+01:00</updated>
<published>2015-07-12T22:22:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134342#p134342</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134342#p134342"/>
<title type="html"><![CDATA[Re: Tablica struktur , obliczenie jej rozmiaru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134342#p134342"><![CDATA[
@RafPe<br />z tego <div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Wyjaśniam że nie chodzi o dynamiczne tworzenie tablicy.<br /> Przy kompilacji ustalam że tablica ma na przykład 5 elementów. Przy innej kompilacji programu robię sobie tablicę 3-elementową.<br /></div><br />wywnioskowałem co innego.<br />Ale może nie zrozumiałem co kolega autor ma na myśli<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1044">Zaba</a> — 12 lip 2015, o 22:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2015-07-12T16:57:05+01:00</updated>
<published>2015-07-12T16:57:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134310#p134310</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134310#p134310"/>
<title type="html"><![CDATA[Re: Tablica struktur , obliczenie jej rozmiaru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134310#p134310"><![CDATA[
<div class="quotetitle">Zaba napisał(a):</div><div class="quotecontent"><br />Powinno przynieść pożądany skutek<br /></div><br />Moze sie myle ale kolega napisal ze chce znac ilosc elementow ktore podczas pracy programu moze dodawac/usuwac ....<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />A ja chce wiedzieć ile elementów mam w tablicy, 2,3 a może 500.<br /></div><br /><br />... wiec wydaje mi sie ze to niestety nie odpowie na pytanie . SizeOf jesli stosowany do array (nie wiem jak to napisac po PL - zbioru)? zwraca nam ilosc bajtow zajetych przez ten array. Wiec majac to musimy podzielic go przez rozmiar pojedynczego elementu<br /><br />[syntax=c]uint8_t rozmiar =  sizeof(tablica) / sizeof(*tablica)[/syntax]<br /><br />Tylko tak jak w powiazanych. Jesli przekazemy tablice jako wskaznik do funkcji i tam sprobujemy uzyc tego - to to nie wyjdzie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4344">RafPe</a> — 12 lip 2015, o 16:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2015-07-12T16:42:43+01:00</updated>
<published>2015-07-12T16:42:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134307#p134307</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134307#p134307"/>
<title type="html"><![CDATA[Re: Tablica struktur , obliczenie jej rozmiaru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134307#p134307"><![CDATA[
Można by zrobić makro preprocesora z ilością elementów i<br />w każdym miejscy gdzie będziesz potrzebował tej informacji użyjesz stałej (makra)<br />np.:<br />[syntax=c]#define ILOSC 5<br /><br />typedef struct dane{<br />char* name;<br />uint16 ohm;<br />uint16 time_const; <br />uint32 WW_PWM;<br />}T_dane;<br /><br />T_dane tablica &#91;ILOSC&#93; = { ....};<br />main (){<br /><br />uint8_t wielkosc_tablicy;<br /> wielkosc_tablicy = ILOSC * sizeof(T_dane);<br /><br />}[/syntax]<br /><br />Powinno przynieść pożądany skutek <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1044">Zaba</a> — 12 lip 2015, o 16:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2015-07-12T13:23:58+01:00</updated>
<published>2015-07-12T13:23:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134289#p134289</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134289#p134289"/>
<title type="html"><![CDATA[Re: Tablica struktur , obliczenie jej rozmiaru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134289#p134289"><![CDATA[
Zobacz sobie tutaj <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic10373.html" >topic10373.html</a><!-- l --> oraz tutaj <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic4612.html#p54675" >topic4612.html#p54675</a><!-- l --> , Moze to Ci pomoze <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4344">RafPe</a> — 12 lip 2015, o 13:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[afrikanerhart]]></name></author>
<updated>2015-07-12T13:08:03+01:00</updated>
<published>2015-07-12T13:08:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134288#p134288</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134288#p134288"/>
<title type="html"><![CDATA[Tablica struktur , obliczenie jej rozmiaru]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12295&amp;p=134288#p134288"><![CDATA[
Mam zdefiniowaną jakąś strukturę  powiedzmy, <br /><br />typedef struct dane{<br />    char* name;<br />    uint16 ohm;<br />    uint16 time_const;   <br />    uint32 WW_PWM;<br />}T_dane;<br /><br /><br />Potem tworzę tablicę <strong>T_dane dane[]</strong>. <br />Tablice inicjalizuję oczywiście ręcznie, wpisując kolejne obiekty. <br />Tablica ma rozmiar nieokreślony, ponieważ chce do niej w sposób swobodny dodawać elementy. <br />Wyjaśniam że nie chodzi o dynamiczne tworzenie tablicy. Przy kompilacji ustalam że tablica ma na przykład 5 elementów. Przy innej kompilacji programu robię sobie tablicę 3-elementową.  <br />W programie odpowiednia funkcja ma określić ile elementów ma tablica. <br />Jeżeli potem gdzieś w programie chcę określić ile elementów ma tablica <strong>dane[]</strong> to jak to zrobić.<br />Wiem że powinienem użyć sizeof() ale to mi wylicza rozmiar zajmowany przez w pamięci przez pojedynczą strukturę. <br />A ja chce wiedzieć ile elementów mam w tablicy, 2,3  a może 500.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1233">afrikanerhart</a> — 12 lip 2015, o 13:08</p><hr />
]]></content>
</entry>
</feed>