Ultima modifica da un moderatore:
C:
#include<stdio.h>
#include <stdlib.h>
struct vector{
char *a;
int c; //capacita
int n; //elementi
};
typedef struct vector vector; //creo il tipo vettore
vector NewVector(); //definisco due funzioni crea nuovo vettore e inserisci in ultima posizione
vector inserisci(vector);
vector inserisci(vector v){
char c;
while(c=getchar()!='\n'){
if( v.n<v.c+1){
v.a[v.n]=c;
v.n++;
}
else{ //raddioppia la dimensione del vettore
char *b;
int i=0;
b=(char *)malloc(sizeof(char)*((v.c*2)+1));
for (i=0;i<v.n-1;i++){
b[I]=v.a[I];
b[v.n]=c;
free(v.a);
v.a=b;
v.c=(2*v.c)+1;
v.n++;
}
}
}
return v;
}
vector NewVector(){
vector v;
v.a=NULL;
v.c=0;
v.n=0;
return v;
}
void main(){
vector v;
v=NewVector();
v=inerisci(v);
}
L'errore del compilatore è questo:
arrayvariabili.c: In function ‘main’:
arrayvariabili.c:54:2: error: incompatible types when assigning to type ‘vector’ from type ‘int’
v=inerisci(v);
perche è sbagliato?[/I][/I]