ok non sono un genio in programmazione ma ci sto provando sul serio quindi ti chiedo un altra dritta..
per quanto riguarda il valore di ritorno quello che hai scritto è giusto pertanto ho pensato di fare restituire alla mia funzione un puntatore ad array dinamico e sperando che l'idea sia corretta ho modificato il codice in questo modo:
codice:
# include <stdio.h>
# include <stdlib.h>
# define MAX 100
//Funzione cerca
int *cerca(int vettore[10], int elem, int dimensione,int*p) {
int i, j = 0;
for (i = 0; i < dimensione; i++) { //scorro il vettore
if (vettore[i] == elem) {
p[j] = i;
j++;
}
}
return(p);
}
int main() {
//Dichiarazioni
int vettore[MAX];
int i,*p;
int dimensione, elem;
int risultato_ricerca;
printf("inserisci la dimensione del vettore\n");
scanf_s("%d", &dimensione);
if (dimensione > 100 || dimensione < 0){
printf("grandezza inserita non valida\n");
scanf_s("%d", &dimensione);
}
p = (int*)malloc(dimensione*sizeof(int)); //allocazione dell'array in modo dinamico la cui dimensione sarà uguale a vettore[10] nel caso limite in cui quest'ultimo contenga un solo numero
if (p == NULL) {
exit(1);
}
printf("inserisci dei valori nel vettore:\n");
for (i = 0; i < dimensione; i++){
scanf_s("%d", &vettore[i]);
}
printf("Vettore:\n");
for (i = 0; i < dimensione; i++) {
printf("%d ,", vettore[i]);
}
printf("valore da cercare:\n");
scanf_s("%d", &elem);
printf("elem = %d\n", elem);
risultato_ricerca = *cerca(vettore, elem, dimensione,p);
printf("%d\n", risultato_ricerca);
system("pause");
return(0);
}
però non funziona lo stesso...come posso fare?