devo risolvere questo problema su un piccolo codice di un'esercizio che stavo facendo, ma non riesco a
capire perchè funziona solamente in certi casi. Vi sarei grato se mi dareste una mano a trovare l'errore!
Il codice è tutto quà:
- Codice: Seleziona tutto
#include <stdio.h>
#include <stdlib.h>
int plus(int, int);
int minus(int, int);
int (*choice(char))(int, int);
int execute_operation(int, int, int(*op)(int, int));
int main(int argc, char *argv[]) {
int result = 0;
int i = 0;
int vect[2] = {3, 2};
printf("The result is: %d\n", vect[(result = execute_operation(5, 2, choice('-')))]);
printf("The result is: %d\n", vect[(result = execute_operation(4, 2, choice('-')))]);
return EXIT_SUCCESS;
}
int plus(int a, int b) {
return (a + b);
}
int minus(int a, int b) {
return (a - b);
}
int (*choice(char c))(int, int) {
switch (c) {
case '+':
return +
case '-':
return −
default:
return NULL;
}
}
int execute_operation(int a, int b, int(*op)(int x, int y)) {
return op((int)&a,(int)&b);
}
Non ci sono errori di compilazione, penso che sia colpa del pc a 64 bit anche se non ho l'OS a 64
Grazie in anticipo!!





