PDA

View Full Version : [C] Problema puntatori


D4rkAng3l
08-02-2005, 16:38
Oddioooo il 23 ho l'esae e non mi ricordo più niente...ho trascurato programmazione per le altre materie:cry:

Ho fatto questo semplice programma, la funzione scambia dovrebbe scambiare i valori contenuti nelle due vafriabili x ed y ma non mi funziona.....

#include <stdio.h>
#include <stdlib.h>

void Scambia(int *, int *);

int main(){

int x = 3;
int y = 6;

printf("x vale: %d\n", x);
printf("y vale: %d\n\n\n", y);

void Scambia(int *x, int *y);

printf("Chiamo la funzione Scambia e ottengo che:\n\n");

printf("x vale: %d\n", x);
printf("y vale: %d\n\n\n", y);

return 0;
}

void Scambia(int *px, int *py){

int c = *px;
*px = *py;
*py = c;
}

Che c'è di sbagliato?

Grazie
Andrea

kk3z
08-02-2005, 17:09
Invece di chiamare la funzione, l'hai dichiarata

Così dovrebbe funzionare:
#include <stdio.h>
#include <stdlib.h>

void Scambia(int *, int *);

int main(){

int x = 3;
int y = 6;

printf("x vale: %d\n", x);
printf("y vale: %d\n\n\n", y);

Scambia(&x, &y);

printf("Chiamo la funzione Scambia e ottengo che:\n\n");

printf("x vale: %d\n", x);
printf("y vale: %d\n\n\n", y);

return 0;
}

void Scambia(int *px, int *py){

int *c = *px;
*px = *py;
*py = *c;
}

D4rkAng3l
08-02-2005, 21:10
mmm si ora compila però non mi ha cambiato i valori delle variabili?come mai?

cionci
08-02-2005, 21:16
Nella funzione di scambio:

int c = *px;
*px = *py;
*py = c;