Free () не освобождает память при компиляции. Ранее я выделил с помощью malloc, и я проверил его, чтобы убедиться, что указатель не является нулевым.
Это ошибки, которые я получаю при компиляции своего кода:
malloc: * ошибка для объекта 0x7ffee53e1aa4: освобожденный указатель не выделен
malloc: * установить точку останова в malloc_error_break для отладки
void math(int array[], int length, int* sum, int* mult);
int main(void)
{
int sum = 0;
int mult = 1 ;
int a[] = {1, 33, 12, 2, 9, 2};
int* sump = (int*) malloc(1*sizeof(int));
if(sump == NULL){
printf("sump is null");
}
int* multp = (int*) malloc(1*sizeof(int));
if(multp == NULL){
printf("multp is null");
}
sump = ∑
multp = &mult;
math(a, 6, sump, multp);
if(sump != NULL){
free(sump);
}
if(multp != NULL){
free(multp);
}
printf("sum: %d mult: %d\n", sum, mult);
return 0;
}
void math(int array[], int length, int* sump, int* multp)
{
int i;
int sum = 1;
int mult = 1;
for(i=0; i<length;++i){
sum += array[i];
mult *= array[i];
}
printf("%d %d\n", sum, mult);
*multp = mult;
*sump = sum;
}