Hey, sono nuovo alla programmazione (imparando attraverso cs50x in C) e quando hanno menzionato le strutture ho deciso di provare a scherzare e ho appena scritto un programma rapido che avrebbe scambiato alcuni valori in una struttura che utilizza una funzione. Sono in esecuzione fino a diversi messaggi di errore, il primo dei quali è "tipi di puntatori incompatibili che passano" numeri di struct * "al parametro di tipo" struct numbers * ". Un altro problema sembra emergere nella definizione della funzione dove il compilatore dice" incompleto definizione del tipo 'struct numero'" speravo solo per un aiuto perché sono perplesso.Nuovo alla programmazione, problema con strutture e funzioni
Heres il codice (so che la sua ruvida ma sto imparando lol)
#include <stdio.h>
struct numbers;
void swap(struct numbers* s);
int main(void)
{
struct numbers
{
int a;
int b;
int c;
};
struct numbers x = {1, 5 , 9};
swap(&x);
printf("%i, %i, %i\n", x.a, x.b, x.c);
return 0;
}
void swap(struct numbers* s)
{
int temp = s -> a;
int temp2 = s -> b;
s -> a = s -> c;
s -> b = temp;
s -> c = temp2;
}
"i numeri di struct definiti all'interno di main" e "struct numbers outside any function" sono considerati tipi diversi. Sposta la definizione all'esterno di 'main'. – immibis
Benvenuti in SO. Mentre la domanda è generalmente ok, sarà più facile per tutti se la prossima volta che inserisci una domanda specifichi quale linea solleva ogni errore. Non dimenticare di contrassegnare una delle risposte che risolvono il problema (se esiste) come soluzione. – SJuan76
Come detto in precedenza, rendere globale la definizione di 'struct'. Inoltre, metti ulteriore spazio tra le righe che trattano cose diverse (come ad esempio dopo il '# include ', a C non interessa i rientri. Puoi anche usare'% d' in 'printf', è più comune. – Gophyr