Dotaz C

Michal Vanka junk.mv na gmail.com
Neděle Leden 7 18:12:12 CET 2018


> mě se to taky stává když alokuji prostor pro c-string jednou na haldě a
podruhé na zásobníku

Ale tady se alokuje jenom na zasobniku....
Zasobnik v tom prikladu nepretece diky tomu, ze se ten kratky textik do
toho bufferu vejde.
80 x pointer na char = bud 160 a nebo 320 bajtu (dle architektury 16/32
bit).
strlen("Nazdar ahoj\n") je vyrazne mene...
-mv


2018-01-07 14:05 GMT+01:00 Miroslav Mraz <mrazik na volny.cz>:

> 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é.
>
> Mrazík
>
> Dne 7.1.2018 v 13:39 Pavel Troller napsal(a):
>
> Zdravím,
>>    při neděli malý blbý dotaz... Zase jednou typická C vlastnost typu
>> "ať je tam hvězdička nebo není, dělá to totéž :-)".
>>
>> Mějme tento example:
>>
>> #include <stdio.h>
>> #include <string.h>
>>
>> int main(void) {
>>          char str[80];
>>          snprintf(str,80,"%s","Nazdar ahoj\n");
>>          printf("%s",str);
>>          return 0;
>> }
>>
>> Vše jasné, funguje jak má.
>>
>> A nyní změníme řádek s deklarací str na:
>>         char *str[80];
>>
>> Kompilátor sice warninguje o nesprávném typu 1. parametru pro snprintf,
>> že to má být char * a je to char **, ale zkompiluje to, binár je stejně
>> velký a stejně funkční :-). Nicméně disassembly kódu ukazuje, že je to
>> zkompilované mírně odlišně.
>>    Ptám se proto, že tu cosi kompiluji (není to můj produkt), hlásí mi
>> to ten warning, tak jsem to začal zkoumat, mají tam tu druhou možnost
>> s hvězdičkou, tak uvažuji, proč ji tam mají a zda to mám přepsat na tu
>> první, jak bych to udělal já :-).
>>
>> Zdraví Pavel
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20180107/6ad6ac04/attachment.html>


Další informace o konferenci Hw-list