История изменений
Исправление beastie, (текущая версия) :
int *
func(int *n)
{
int *a = calloc(*n, sizeof(int));
*n *= sizeof(int);
return a;
}
int
main()
{
int n = 10;
int *a = func(&n);
printf("%d\n", n);
return 0;
}
Но 3-й вариант будет всё ж лучше. Т.е. массив — в параметры, новое значение кол-ва — через return.
int
func(int **a, int n)
{
*a = calloc(n, sizeof(int));
return n * sizeof(int);
}
int
main()
{
int n = 10;
int *a;
n = func(&a, n);
printf("%d\n", n);
return 0;
}
В общем — use imagination.
Исходная версия beastie, :
int *
func(int *n)
{
array = calloc(*n, sizeof(int));
*n *= sizeof(int);
}
int
main()
{
int n = 10;
int *a = func(&n);
printf("%d\n", n);
return 0;
}
Но 3-й вариант будет всё ж лучше. Т.е. массив — в параметры, новое значение кол-ва — через return.
int
func(int **a, int n)
{
*a = calloc(n, sizeof(int));
return n * sizeof(int);
}
int
main()
{
int n = 10;
int *a;
n = func(&a, n);
printf("%d\n", n);
return 0;
}
В общем — use imagination.