C/Powszechne praktyki: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Anulowanie wersji nr 171447 utworzonej przez 178.42.163.56 (dyskusja)
czemu create_string zwraca wskaźnik a nie po prostu obiekt?
Linia 12:
};
struct string *create_string(const char *initial) {
assert (initial != NULL);
struct string *new_string = malloc(sizeof(*new_string));
if (new_string.size != NULLstrlen(initial) {;
new_string->size.data = malloc(strlen(initial));
strcpy(new_string->.data, = strdup(initial);
}
return new_string;
}
Linia 26 ⟶ 25:
 
<source lang="c">
void free_string(struct string *s)
{
free(s->.data); /* zwalniamy pamięć zajmowaną przez strukturę */
assert (s != NULL);
free(s->data); /* zwalniamy pamięć zajmowaną przez strukturę */
free(s); /* usuwamy samą strukturę */
}
</source>
Linia 40 ⟶ 37:
<source lang="c">
struct string;
struct string *create_string(const char *initial);
void free_string(struct string *s);
</source>
{{Porada|Jeśli znasz język [[C++]], mógłbyś użyć klas, a dzięki nim konstruktorów i destruktorów.}}