Questo frammento di codice mi dà questo (warning) initialization makes pointer from integer without a cast. Relativo alla linea di inizializzazione graph *campo= creategraph(); e anche nel suo assegnamento. Ma perchè? Dov'è l'errore?
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#define N 10
typedef char stringa[N];
typedef struct lista{
int pila;
struct lista *next;
}lista;
/*nodo della lista di adiacenza*/
typedef struct nodo_lista{
lista *info;
struct nodo_lista *next;
}nodo_lista;
/*grafo rappresentato tramite lista di liste di adiacenza*/
typedef struct graph{
nodo_lista *adiacenza,*next;
lista *info; // nodo corrente
struct graph *g;
} graph;
stringa argomenti[3];
graph *creategraph()
{
graph* grafo = malloc(sizeof(graph));
if (!grafo) {
fprintf(stderr,"Errore di allocazione A\n");
exit(-1);
}
if(!(grafo->adiacenza = malloc (sizeof(nodo_lista)))) {
fprintf(stderr,"Errore di allocazione B\n");
exit(-2);
}
grafo->adiacenza = NULL;
grafo->next = NULL;
//grafo->info = NULL;
return grafo;
}
int main(int argc, char *argv[])
{
int i,j,k, /*contatore*/
c; /* usato nella getchar*/
char comando; /*carattere*/
graph *campo= creategraph();
stringa input; /*stringa usata per memorizzare temporaneamente le righe di Input*/
while(1){
i=0;
for(j=0;j<N;j++) /* j contatore caratteri nella stringa */
input[j]='\0'; /* si cotruisce l'array di un massimo di 100 caratteri*/
for(k=0;k<6;k++) /* k contatore argomenti*/
for(j=0;j<N;j++)
argomenti[k][j]='\0'; /* inizializzazione dell'array di stringhe*/
printf("Inserire il comando : ");
while((c=getchar())!='\n'){
input[i++]=c;
}
comando = input[0];
trova_argomenti(input); /* memorizzo gli argomenti inseriti da input nell'array di stringhe */
switch(comando){
case 'i':
campo = creategraph();
inizia_partita(atoi(argomenti[0]), campo);
break;
case 'f':
printf("\nExit\n\n");
exit (0);
default:
printf("Comando inesistente\n");
break;
}
}
exit (0);
}
Potete aiutarmi per cortesia?
Grazie