FUNZIONE CHE RESTITUISCE STRUTTURA

di il
2 risposte

FUNZIONE CHE RESTITUISCE STRUTTURA

  • Salve, utilizzando questa funzione il compilatore in visual studio mi segnale svariati errori come ad esempio "funzione add_complex restituisce il tipo incompleto complex".Non riesco a capire se sbaglio qualcosa o il compilatore mi segnale degli errori immotivati
#include<stdio.h>
struct complex add_complex(struct complex c1, struct complex c2)
{
	struct complex sum;
	sum.real = c1.real + c2.real;
	sum.imag = c1.imag + c2.imag;
	return sum;
}

2 Risposte

  • Re: FUNZIONE CHE RESTITUISCE STRUTTURA

    Dove è definita la struttura
    complex
    ?

    All'interno del main, quindi è "visibile solo in quello scope. Porta sem'plicemente la definizione in cima al file, prima del prototipo della tua funzione e ti compilerà tranquillamente
    
    #include<stdio.h>
    
    struct complex
    {
    	double real;
    	double imag;
    };
    
    struct complex add_complex(struct complex c1, struct complex c2);
    
    int main(void)
    {
    	struct complex c1, c2, c3;
    
    	struct complex sum = add_complex(c1, c2);
    
    	printf("real %g\nimag %g", c3.real, c3.imag);
    	return 0;
    }
    struct complex add_complex(struct complex c1, struct complex c2)
    {
    	struct complex sum;
    	sum.real = c1.real + c2.real;
    	sum.imag = c1.imag + c2.imag;
    }
    
    Inoltre la tua funzione
    add_complex
    deve ritornare un valore.....
    
    struct complex add_complex(struct complex c1, struct complex c2)
    {
    	struct complex sum;
    	sum.real = c1.real + c2.real;
    	sum.imag = c1.imag + c2.imag;
    
    	return sum;
    }
    
    Nella definizione delle variabili nel main
    struct complex c1, c2, c3;
    manca il ; alla fine.

    In fine stai passando alla funzione due variabili non inizializzate c1 e c2, per poi stampare i valori di c3..........
  • Re: FUNZIONE CHE RESTITUISCE STRUTTURA

    Per errore ho inviato il codice dove stavo facendo le prove e non avevo ancora inizializzato i membri,grazie per la delucidazione comunque;
Devi accedere o registrarti per scrivere nel forum
2 risposte