Devo fare una funzione che dia come ritorno un array, dati in input 2 array e la loro dimensione. Questa funzione deve inserire nel terzo array(quello in ritorno) i valori alternati dei primi 2 array e inserire nell'ultimo posto la somma di tutti gli elementi di questo array.

Per spiegarmi meglio, questo terzo array dovrebbe essere composto nel modo seguente: {v1_1, v2_1, v1_2, v2_2,....,v1_n,v2_n, (v1_1+v2_1+v1_2+v2_2+...+v1_n+v2_n)}. Dove v1_k e v2_k sono gli elementi k-esimi del primo vettore e del secondo.

Vi faccio vedere come ho fatto:

codice:
int* alterna(int *vett1, int *vett2, int n)
{
	int* vett3;
	int i=0;
	int s=0;
	vett3=malloc(MAX*sizeof(int));
	for(i=0;i<2*n;i++)
	{
		*vett3=*(vett1+i); //l'i-esimo elemento di vett1 viene assegnato al primo elemento di vett3
		vett3++;
		vett3++;
	}
	for(i=0;i<2*n;i++)
	{
		vett3++;		
		*vett3=*(vett2+i);
		vett3++;
	}
	
	for(i=0;i<2*n;i++)
	{
		s+=vett3[i];
	}
	vett3[2*n+1]=s;
	
	return vett3;
}
mentre il file main è così:
codice:
#include <stdio.h>
#include "logic.h"
#include <malloc.h>
#define MAX 50

int main()
{
	int vett1[MAX];
	int vett2[MAX];
	int* vett3=NULL;
	int n, i;
	printf("Inserire la dimensione degli array\n");
	scanf("%d", &n);

	vett3=malloc((2*n)+1*sizeof(int));

	printf("Digitare gli elementi del primo array\n");
	for(i=0;i<n;i++)
		scanf("%d", &vett1[i]);

	printf("Digitare gli elementi del secondo array\n");
	for(i=0;i<n;i++)
		scanf("%d", &vett2[i]);

	vett3=alterna(vett1, vett2, n);

	for(i=0;i<(2*n)+1;i++)
		printf("%d ", vett3[i]);
	printf("\n");


	return 0;
}
Il programma si compila, ma alla fine viene stampato un array che è composto solo da 0, e non riesco a capire dove ho sbagliato. Qualcuno mi può aiutare?