Dsy Network www | forum | my | didattica | howto | wiki | el goog | stats | blog | dona | rappresentanti
Homepage
 Register   Calendar   Members  Faq   Search  Logout 
.dsy:it. : Powered by vBulletin version 2.3.1 .dsy:it. > Didattica > Corsi A - F > Algoritmi e strutture dati > Problema con dev c++
  Last Thread   Next Thread
Author
Thread    Expand all | Contract all    Post New Thread    Post A Reply
Collapse
hyperion
.illuminato.

User info:
Registered: Oct 2007
Posts: 171 (0.03 al dì)
Location:
Corso: Informatica
Anno:
Time Online: 3 Days, 12:37:41 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged
Problema con dev c++

ciao a tutti...utilizzando dev-c++ non riesco a compilare correttamente i seguenti sorgenti,mi dice che ho più di un main definito ma non capisco perchè ne ho solo uno!
Riporto l'errore che dev c++ mi da quando provo a compilare test.c con le seguenti opzioni : test.c stack.c
multiple definition of main
first defined here
..
..
suggerimenti?grazie mille..


Header file (stack.h)

PHP:

#ifndef STACK_H
#define STACK_H

void push( int n);
int pop();
int top(void);
int is_empty(void);
void make_empty(void);
void stampa(void);

#endif





Sorgente per l'header (stack.c)

PHP:

#include<stdio.h>
#include<stdlib.h>

#include "stack.h"

struct nodo{
int dato;
int h;
struct nodo *next;
};

int cont,h;
typedef struct nodo nodo;
nodo *testa = NULL;
nodo *tmp = NULL;


void push( int n){
    struct nodo *nuovo;
    nuovo = malloc(sizeof(struct nodo));
    if(nuovo == NULL) exit(0);
    nuovo -> dato = n;
    nuovo -> next = testa;    
    testa = nuovo;
}

int pop(void){
    tmp = testa;
    h = tmp->dato;
    testa = testa->next;
    return h;
}

int top(void){
    return testa->dato;
}

int is_empty(void){
    if(testa == NULL) return 1;
    else return 0;
}

void make_empty(void){
    while(is_empty()== 1)
        pop();
}

void stampa(void){
    tmp=testa;
    while(tmp !=NULL){
        printf("| %d |\n",tmp->dato);
        printf("|---|\n");
        tmp=tmp->next;
        }
}




Client di test (test.c)
PHP:

#include<stdio.h>
#include<stdlib.h>

#include "stack.h"

int main (){
    char c;
    int n,tmp;
    while( ( c = getchar ()) != 'f' ){

        switch(c){
            case '1': 
                scanf("%d",&n);
                push(n);
                printf("inserito: %d",n);
                break;
            case '2':
                tmp = pop();
                printf("tolto: %d",tmp);
                break;
            case '3':
                tmp = top();
                printf("in testa: %d",tmp);
                break;
            case '4': 
                tmp = is_empty();
                if(tmp==0)
                    printf("pila vuota");
                else printf("pila non vuota");
                break;
            case '5': 
                make_empty();    
                printf("pila svuotata");
                break;
            case '6': stampa();
                break;

        } // end switch
    }


return 0;
}

28-01-2009 14:48
Click Here to See the Profile for hyperion Click here to Send hyperion a Private Message Find more posts by hyperion Add hyperion to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
DarkSchneider
Why so serious?

User info:
Registered: Feb 2004
Posts: 1250 (0.16 al dì)
Location: Brescia
Corso: Informatica
Anno: out of bounds :/
Time Online: 26 Days, 1:01:59 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

l'errore mi pare chiaro:

hai definito più volte, anzichè una il main(), ovvero il punto di partenza
per l'esecuzione del tuo programma..

28-01-2009 19:07
Click Here to See the Profile for DarkSchneider Click here to Send DarkSchneider a Private Message Find more posts by DarkSchneider Add DarkSchneider to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
hyperion
.illuminato.

User info:
Registered: Oct 2007
Posts: 171 (0.03 al dì)
Location:
Corso: Informatica
Anno:
Time Online: 3 Days, 12:37:41 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

eccetto che in test.c non vedo altri main()....

28-01-2009 19:36
Click Here to See the Profile for hyperion Click here to Send hyperion a Private Message Find more posts by hyperion Add hyperion to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
DarkSchneider
Why so serious?

User info:
Registered: Feb 2004
Posts: 1250 (0.16 al dì)
Location: Brescia
Corso: Informatica
Anno: out of bounds :/
Time Online: 26 Days, 1:01:59 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

non vorrei dire una scemenza, ma nel file test.c, prova a fare un include di
stack.c, anzichè stack.h

28-01-2009 20:21
Click Here to See the Profile for DarkSchneider Click here to Send DarkSchneider a Private Message Find more posts by DarkSchneider Add DarkSchneider to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
recoil
dsy adminz

User info:
Registered: Mar 2002
Posts: 4454 (0.54 al dì)
Location: Milano / Erba
Corso: TICOM
Anno: laureato
Time Online: 61 Days, 16:17:45 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

sembra il classico problema da Makefile
capita, per distrazione, di includere due volte lo stesso file nella fase di linking. in questo modo c'è una definizione multipla delle stesse funzioni, nel tuo caso proprio il main.
il fatto è che dev-cpp non dovrebbe fare queste errori.
ti consiglio di compilare a mano quando puoi, almeno ti rendi conto di come funziona il Makefile... può sempre venire utile in futuro

apri il prompt di dos, aggiungi la directory bin di dev-cpp nel path poi edita il Makefile del tuo progetto e assicurati che non ci sia due volte il file test.o nel linking.
a quel punto lancia tu il make dal prompt di dos e vedi se funziona. se va, vuol dire che dev-cpp ha fatto macello, se invece il makefile era a posto non so che dirti

__________________
Sono sempre alla ricerca di curriculum interessanti da segnalare alle società con cui ho contatti. Info in pm

30-01-2009 10:59
Click Here to See the Profile for recoil Click here to Send recoil a Private Message Visit recoil's homepage! Find more posts by recoil Add recoil to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
All times are GMT. The time now is 13:39.    Post New Thread    Post A Reply
  Last Thread   Next Thread
Show Printable Version | Email this Page | Subscribe to this Thread | Add to Bookmarks

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
 

Powered by: vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento | Licenze | Thanks | Syndacate
Pagina generata in 0.034 seconds (82.30% PHP - 17.70% MySQL) con 26 query.