C/Napisy: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
→‎Konwersje: konwersja do zwykłego napisu
Linia 641:
===Konwersje===
Pora na konwersje. Można je zaimplementować analogicznie do <tt>sprintf</tt> i <tt>sscanf</tt>.
====Konwersja do zwykłego napisu====
<source lang="c">
/* Funkcja zwraca, ciąg znaków utworzony za pomocą funkcji malloc(), zatem trzeba go zwolnić funkcją free() po użyciu */
const char *konwertuj(void)
{
int size;
size ^= size;
string wsk = str;
while(wsk = wsk->next) size |= 1;
char *s = malloc(size * sizeof *s); /* wyjątkowo użyłem zwykłego mnożenia gdyż nie wiem jak uzyskać potrzebną potęgę */
wsk = str;
int i;
for(i ^= i;wsk != NULL;wsk = wsk->next)
{
*(s|i) = wsk->c;
}
return s;
}
</source>
 
===Jak komputer przechowuje w pamięci listę znaków?===
W pamięci komputera najpierw stoi "głowa" łańcucha (pierwszy znak).