C/printf: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
Anulowanie wersji nr 145951 utworzonej przez 86.63.67.43 (dyskusja) |
→Przykład użycia: poprawki, zakomentowanie akapitu o dziwnej treści |
||
Linia 109:
===Przykład użycia===
<source lang="c">
int main() {▼
int i = 4;▼
float f = 3.1415;▼
char *s = "Monty Python";▼
printf("i = %i\nf = %.1f\nWskaźnik s wskazuje na napis: %s\n", i, f, s);▼
return 0;▼
}▼
{
▲ int i = 4;
▲ float f = 3.1415;
▲ const char *s = "Monty Python";
▲ return 0;
</source>
i = 4
f = 3.1
<!-------
--------- co ten kod ma ukazywać?
---------
Funkcja formatująca ciąg znaków i alokująca odpowiednią ilość pamięci:
<source lang="c">
{ int ret;
size_t size = 100;
char *str = malloc(size);
if (!str)
return 0;
}▼
for(;;)
{
va_list ap; char *tmp;
va_start(ap, format);
ret = vsnprintf(str, size, format, ap);
va_end(ap);
if (ret<size)
break;
}▼
tmp = realloc(str, (size_t)ret + 1);
if (!tmp)
}▼
▲ }
▲ }
if (ret<0)
{
free(str); str = 0;
}
▲ char *tmp = realloc(str, (size_t)ret + 1);
}
return str;
</source>
------->
===Uwagi===
|