PDA

Visualizza la versione completa : [c++] errore:call of overloaded is ambiguos


milu
29-12-2012, 13:43
ciao ragazzi..
sto facendo un programma sull'inserimento ordinato in un vettore ordinato..mi da errore quando nel main viene chiamata la funzione crea_spazio..
perchè mi da questo errore: "call of overloaded `crea_spazio(int[20], int&, int&)' is ambiguous"?
qualcuno sa aiutarmi?grazie!!
vi posto quello che ho fatto



#include <iostream>
#include<cstdlib>
using namespace std;
#define N 20
typedef int vettore[N];
vettore v;

void inserimento(vettore, int&);
int cerca_posizione(vettore,int&,int&);
void crea_spazio(vettore,int&,int&);

void inserimento(vettore v, int&num_elem){
cout<<"\n quanti elementi vuoi inserire?";
cin>>num_elem;
int i;
for(i=0;i<num_elem;i++){
cout<<"\n inserisci l'elemento" <<i+1<< "del vettore ";
cin>>v[i];
}
cout<<"\ il vettore v e' uguale a [";
for(i=0;i<num_elem;i++){
cout<<v[i];
}
cout<<"]";
}

int cerca_posizione(vettore v, int&num_elem, int&x){
int i=0;
while(i<num_elem && v[i]<=x)
i++;
return(i);
}

void crea_spazio(vettore v, int&num_elem, int pos){
for (int i=num_elem-1;i>=pos;i--)
v[i+1]=v[i];
}

int main(){
vettore v;
int num_elem;
int x;
int i;
inserimento(v,num_elem);
cout<<"\n inserisci un nuovo elemento ";
cin>>x;
int index=cerca_posizione(v,num_elem,x)
crea_spazio(v, num_elem, index); //L'ERRORE ME LO DA QUI
v[index]=x;
num_elem++;
cout<<"\ il vettore v e' uguale a [";
for(i=0;i<num_elem;i++){
cout<<v[i];
}
cout<<"]";
system("pause");
}

oregon
29-12-2012, 14:05
L'errore ti dovrebbe portare a controllare bene come hai scritto la testata della crea_spazio.

milu
29-12-2012, 14:31
grazie!!
era una sciocchezza nn me ne ero proprio resa conto.. :)

Loading