<div dir="ltr"><div>> <span style="font-size:12.8px">mě se to taky stává když alokuji prostor pro c-string jednou na haldě a podruhé na zásobníku</span></div><div><span style="font-size:12.8px"><br></span></div>Ale tady se alokuje jenom na zasobniku....<div>Zasobnik v tom prikladu nepretece diky tomu, ze se ten kratky textik do toho bufferu vejde.</div><div>80 x pointer na char = bud 160 a nebo 320 bajtu (dle architektury 16/32 bit).</div><div>strlen("<span style="font-size:12.8px">Nazdar ahoj\n") je vyrazne mene...</span></div><div><span style="font-size:12.8px">-mv</span></div><div><span style="font-size:12.8px"><br></span></div></div><div class="gmail_extra"><br><div class="gmail_quote">2018-01-07 14:05 GMT+01:00 Miroslav Mraz <span dir="ltr"><<a href="mailto:mrazik@volny.cz" target="_blank">mrazik@volny.cz</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">To není blbý dotaz. Patrně jde o překlep, mě se to taky stává když alokuji prostor pro c-string jednou na haldě a podruhé na zásobníku. Opravte to tak, jak to považujete za správné.<br>
<br>
Mrazík<br>
<br>
Dne 7.1.2018 v 13:39 Pavel Troller napsal(a):<div class="HOEnZb"><div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Zdravím,<br>
při neděli malý blbý dotaz... Zase jednou typická C vlastnost typu<br>
"ať je tam hvězdička nebo není, dělá to totéž :-)".<br>
<br>
Mějme tento example:<br>
<br>
#include <stdio.h><br>
#include <string.h><br>
<br>
int main(void) {<br>
char str[80];<br>
snprintf(str,80,"%s","Nazdar ahoj\n");<br>
printf("%s",str);<br>
return 0;<br>
}<br>
<br>
Vše jasné, funguje jak má.<br>
<br>
A nyní změníme řádek s deklarací str na:<br>
char *str[80];<br>
<br>
Kompilátor sice warninguje o nesprávném typu 1. parametru pro snprintf,<br>
že to má být char * a je to char **, ale zkompiluje to, binár je stejně<br>
velký a stejně funkční :-). Nicméně disassembly kódu ukazuje, že je to<br>
zkompilované mírně odlišně.<br>
Ptám se proto, že tu cosi kompiluji (není to můj produkt), hlásí mi<br>
to ten warning, tak jsem to začal zkoumat, mají tam tu druhou možnost<br>
s hvězdičkou, tak uvažuji, proč ji tam mají a zda to mám přepsat na tu<br>
první, jak bych to udělal já :-).<br>
<br>
Zdraví Pavel<br>
<br>
______________________________<wbr>_________________<br>
HW-list mailing list - sponsored by <a href="http://www.HW.cz" rel="noreferrer" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer" target="_blank">http://list.hw.cz/mailman/list<wbr>info/hw-list</a><br>
<br>
</blockquote>
______________________________<wbr>_________________<br>
HW-list mailing list - sponsored by <a href="http://www.HW.cz" rel="noreferrer" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer" target="_blank">http://list.hw.cz/mailman/list<wbr>info/hw-list</a><br>
</div></div></blockquote></div><br></div>