4. Выделение памяти
int *bar(int y)
{
// do smth
return malloc(y * sizeof(int));
}
int *foo(int x)
{
if (CONDITION)
{ // do smth
return bar(x);
}
return NULL;
}
int main(void)
{
int *a = foo(5);
// do smth
free(a);
return 0;
}
Вариант реорганизации и исправления кода
int bar(int *a, int y)
{
// don't alloc memory
return RET_CODE;
}
int foo(int *a, int x)
{
if (CONDITION)
{ // do smth
return bar(a, x);
}
return 1;
}
int main(void)
{
int *a = malloc(5 * sizeof(int));
if (foo(a, 5))
{
// error handling
return 1;
}
// do smth
free(a);
return 0;
}
Last updated