PDA

View Full Version : [C] codice non gira su macchine diverse


starmar
26-10-2010, 07:30
Ciao ragazzi, come da titolo, ho un sorgente scritto in c++, che si compila e si esegue perfettamente su un win7 con dev, mentre sul mio mac, e su xp virtualizzato ( usando sempre dev come ide), non compila, generandomi un'errore durante un malloc...
Non so davvero cosa possa essere... aspetto vostre news.
Grazie a tutti.;)

GioVesas
26-10-2010, 07:54
Un po' vago.
Non puoi postare il pezzo incriminato?

pare93
26-10-2010, 08:34
Sarà per il .net framework diverso tra i pc

tomminno
26-10-2010, 08:47
Sarà per il .net framework diverso tra i pc

Eh? E che c'entra .NET con C e malloc?

marco.r
26-10-2010, 11:58
Ciao ragazzi, come da titolo, ho un sorgente scritto in c++, che si compila e si esegue perfettamente su un win7 con dev, mentre sul mio mac, e su xp virtualizzato ( usando sempre dev come ide), non compila, generandomi un'errore durante un malloc...
Non so davvero cosa possa essere... aspetto vostre news.
Grazie a tutti.;)

che compilatori usi sulle varie macchine (in particolare Win) ? VS Gcc ?
32 o 64 bit ?

starmar
26-10-2010, 12:48
Ho usato gcc (4.0??) su un macbookpro di ultima generazione. Come UDE ho usato devc++ su xp virtualizzato mentre su os x ho usato codeblocks e xcode.

tomminno
26-10-2010, 13:15
Ho usato gcc (4.0??) su un macbookpro di ultima generazione. Come UDE ho usato devc++ su xp virtualizzato mentre su os x ho usato codeblocks e xcode.

Si ma se non posti un pò di codice non è possibile aiutarti.

marco.r
26-10-2010, 16:35
Si ma se non posti un pò di codice non è possibile aiutarti.
O almeno il messaggio di errore...

starmar
26-10-2010, 17:48
ecco qua


#include <iostream>

typedef struct elemento
{
int inf;
struct elemento *sx;
struct elemento *dx;
} elem;

elem *root=NULL;

elem* inserisci(int inf,elem *r)
{
if (r==NULL)
{
elem *b = (elem*)malloc(sizeof(elem)); ---> IMPLICIT DECLARATION OF FUCNTION 'INT MALLOC'
b->inf = inf;
b->sx = NULL;
b->dx = NULL;
std::cout<<"Ho inserito "<<inf<<"\n";
return b;
}
else
{
if (inf<r->inf)
r->sx = inserisci(inf,r->sx);
if (inf>r->inf)
r->dx = inserisci(inf,r->dx);
return r;
}
}

simo_x
26-10-2010, 19:36
elem *b = (elem*)malloc(sizeof(elem)); ---> IMPLICIT DECLARATION OF FUCNTION 'INT MALLOC'

devi includere ctstdlib

starmar
26-10-2010, 21:53
Grazie, era davvero una sciocchezza... Ho sistemato qualche getch e adesso è perfetto. Quando passi dalle mie parti dimmelo che ti offro na bira !!