PDA

Visualizza la versione completa : [C] Warning "incompatible implicit declaration of built-in function"


scamps
15-12-2010, 17:48
ciao a tutti, un esercizio di laboratorio mi chiedeva realizzare un programma che simuli la gestione di prodotti nei supermercati, un semplice programma con lettura da file dei dati registrazione in una lista. Il problema è che il mio compilatore mi da questo errore : "warning: incompatible implicit declaration of built-in function ‘malloc’" nella riga 23, nn riesco a capire cosa ho sbagliato, a me sembra tutto giuto, eppure c'è qualcosa che nn va, spero possiate aiutarmi, grazie in anticipo.




# include <string.h>
# include <stdio.h>

typedef struct lista {
char store[128];
char code[8];
int quantity;
struct lista* next;
} *listapnt;

void main(){
listapnt pntlista;
listapnt lastinlista;
listapnt cerca;
listapnt lastcerca;
FILE *s;
char sname[128];
char temp[128];
char command;
char icode[8];
int iquantity;

pntlista=(listapnt)malloc(sizeof(struct lista));
pntlista->next=NULL;
cerca=(listapnt)malloc(sizeof(struct lista));
lastcerca=(listapnt)malloc(sizeof(struct lista));

s=fopen("items.txt","R");
while(fscanf(s,"%s",temp)!=EOF){
if(strlen(temp)!=8){
strcpy(sname,temp);
}
else{
lastinlista=(listapnt)malloc(sizeof(struct lista));
strcpy(pntlista->store,sname);
strcpy(pntlista->code,temp);
fscanf(s,"%d",&pntlista->quantity);
lastinlista->next=pntlista->next;
pntlista->next=lastinlista;
}
}
fclose(s);

do{
printf("\n insert the operation code");
scanf("%c",&command);
switch (command){
case 'L':{
printf("\n insert the item code:");
scanf("%s",icode);
printf("\n insert the quantity");
scanf("%d",&iquantity);
cerca->next=lastinlista;
lastcerca->next=lastinlista->next;
while(cerca->next!=NULL){
if((strcmp(lastcerca->code,icode)==0)&&(lastcerca->quantity >= iquantity)){
printf("\n %s",lastcerca->store);
}
lastcerca=lastcerca->next;
cerca->next=lastcerca;
}
break;
}
case 'U':{
printf("\n insert the item code:");
scanf("%s",icode);
printf("\n insert the quantity");
scanf("%d",&iquantity);
printf("\n insert the store name");
scanf("%s",sname);
cerca->next=lastinlista;
lastcerca->next=lastinlista->next;
while(cerca->next!=NULL){
if((strcmp(lastcerca->code,icode)==0)&&(strcmp(lastcerca->store,sname)==0)){
if(iquantity>=0){
lastcerca->quantity=lastcerca->quantity+iquantity;
}
else{
iquantity=iquantity*(-1);
if(lastcerca->quantity>=iquantity){
lastcerca->quantity=lastcerca->quantity-iquantity;
}
}
}
lastcerca=lastcerca->next;
cerca->next=lastcerca;
}
break;
}
}
}while(command!='Q');
printf("\n exiting");
s=fopen("item.txt","W");
strcpy(sname,lastinlista->store);
fprintf(s,"%s \n",lastinlista->store);
while (pntlista->next!=NULL){
if(strcmp(lastinlista->store,sname)==0){
fprintf(s,"%s %d \n",lastinlista->code ,lastinlista->quantity);
}
else{
strcpy(sname,lastinlista->store);
fprintf(s,"%s \n",lastinlista->store);
}
lastinlista=lastinlista->next;
pntlista->next=lastinlista;
}
fclose(s);
}

scamps
15-12-2010, 17:54
scusate, ho già risolto da solo, mancava semplicemente #include <stdlib.h> -.-! sorry

Loading