Witam Panowie,
Napisałem funkcję, która ma zwracać zaszyfrowany/odszyfrowany napis nie naruszając oryginału:
char * const Zmień(const char* str, const unsigned long len)
{
static char* result = NULL;
if(result != NULL) free(p);
result = (char*)malloc(l);
for(unsigned long i = 0; i < len; i++) result[i] = str[i] ^ 5;
return result;
}
Chciałem się Was zapytać czy wykorzystanie statycznego wskaźnika result jako takiego jakby 'pojemnika' to dobry pomysł? Nie chcę się uczyć złych nawyków. Zrobiłem to tak, ponieważ chciałem, aby funkcja była jak najłatwiejsza w użyciu, nie chciałem dawać kolejnych 2 parametrów dla buffora, który zawierałby rezultat i jego długości, ponadto czy na pewno zabezpieczyłem się odpowiednio przed wyciekiem pamięci ?