hola a todos: estoy haciendo una tarea donde me piden pasar punteros a funciones pero estos punteros apuntan a un vector. Este es el codigo que escribi pero no se porque me dice que le paso un int** a una funcion que espera un int*
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#ifndef TAMAÑO
#define TAMAÑO 10
#endif
int suma_array(int * arreglo);
void muestra_array(int * arreglo);
void llena_arreglo(int * arreglo);
void main(){
int opcion = 10;
int * arreglo = NULL;
printf("Ingrese una opcion: \n1. Llenar arreglo\n2. Mostrar arreglo\n3. Sumar arreglo");
scanf("%d", &opcion);
while(1){
switch(opcion) {
case 1: {
arreglo = (int *)malloc(sizeof(int)*10);
llena_arreglo(&arreglo);
break;
}
case 2: {
if(arreglo != NULL) {
muestra_array(&arreglo);
break;
} else {
printf("ERROR");
break;
}
}
case 3: {
if(arreglo != NULL){
printf("La suma del arreglo es: %d",suma_array(&arreglo));
} else {
printf("ERROR");
}
break;
}
default: {
printf("ERROR");
}
}
}
}
void llena_arreglo(int * arreglo) {
srand ( (unsigned)time ( NULL ) );
int i = 0;
for (i; i < TAMAÑO; i++)
{
*(arreglo + i) = rand()%100;
}
muestra_array(&arreglo);
}
void muestra_array(int * arreglo) {
int i = 0;
for (i; i < TAMAÑO; i++)
{
printf("Nº %d: %d\n",i+1, *(arreglo + i));
}
}
int suma_array(int * arreglo) {
int suma = 0;
for (int i = 0; i < TAMAÑO; i++)
{
suma = suma + *(arreglo + i);
}
return suma;
}
Desde ya muchas gracias