Newsgroup: it.comp.macintosh
Titolo: gcc OSX aiuto vi prego...

devo fare dei preogrammi dove uso malloc, alloc, realloc, puntatori e
funzioni matematiche.
Mi dite quali librerie devo includere nel file.c affinchè gcc di osx non
dia problemi?
Ad esempio ho utilizzato malloc senza precisare delle librerie e sono
sorti problemi mentre con la funzione sin (seno)  tutto ok... boh?!
mi aiutate?
Grazie mille! 

 dia problemi?
Prova a digitare "man malloc" da terminale e guarda cosa dice sotto 
Synopsis :)
-- 
Jollino
Network admin on 
irc.discussioni.org
Per rispondere togli il freno a mano
http://www.petitiononline.com/yahoomac/

 Synopsis :)
e cos è Synopsis?

 e cos è Synopsis?
"come si usa"


 mi aiutate?
Di solito non e' necessario indicare le librerie ma semplicemente i file
di intestazione.
Nella documentazione Apple non ho mai cercato queste cose ma un
qualunque manuale sul C le riporta.
-- 
Ciao da Francesco B.

 #include <stdio.h>
senza stdio.h va bene altrimenti escono degli errori...
Non ci capisco niente! Non so proprio che fare mi sembra tutto così
ridicolo...
Cmq grazie mille!
Da

 ridicolo...
Sei sicuro di usare gcc per compilare il codice C e g++ per il C++?
Sembra una banalità, ma...


 ridicolo...
Prova questo banale esempio:
(io ho usato emacs per scriverlo)
--------------------------------
#include <stdio.h>
#include <math.h>
int main()
{
   double a, b;
   a = 2.0;
   b = sin(a);
   printf("%f", b);
}
---------------------------------
Questo programmino calcolo il seno di 2 radianti.
Ho chiamato il programma prova.c (ho una grande fantasia).
da terminale ho dato il comando:
gcc prova.c -o prova
e quindi ho richiamato il programma con:
./prova
Ha funzionato senza problemi.
Se non ti funziona significa che hai grossi problemi col tuo computer.
Prova a reinstallare i developer tools.


 Sembra una banalità, ma...
mi serve compilare solo in C e fino ad ora ho sempre usato gcc...

 Ho chiamato il programma prova.c (ho una grande fantasia).
LOL
Ora conosco tutte le tue password ;-D
-- 
Per contattarmi:
http://formmailto.com/saltydog

 Ho chiamato il programma prova.c (ho una grande fantasia).
Anche a me funziona senza problemi!
io ne avevo fatto uno molto simile senza includere le librerie math.h e
stdio.h e andava lo stesso... questo significa che anche se le scrivo
non ci dovrebbero essere problemi.
Hai per caso anche un programmino semplice con malloc, realloc e calloc,
quello che ho io mi dà errore e non so se dipende dal programma.
Già che ci siamo mi puoi dire la combinazione di tasti per le parentesi
graffe?
Grazie di tutto! ciao

 graffe?
opt shift è
opt shift +


 Prova a copincollarlo qui, magari proviamo anche noi
Ho provato a ricompilarlo inserendo perň anche le librerie stdio.h e
stdlib.h e ora funziona anche lui...
beh meglio cosě :)
Grazie per le parentesi, ora devo sciogliere solo il dubbio riguardo al
funzionamento di calloc e realloc.

 graffe?
Dipende dalla tastiera:
italiana: option-( = {      option-) = }
italiana-pro: maiuscole-option-é = {     maiuscole-option-* = }
Un consiglio: se hai bisogno di vedere la sintassi dei comandi, quali
header file includere e ad avere qualche esempio puoi usare il comando
da terminale: man
seguito dall'istruzione di cui vuoi avere le informazioni.
Ad esempio:
man malloc
col tasto invio fai scorrere le istruzioni di una riga alla volta
con lo spazio di una pagina alla volta
con q esci 


 funzionamento di calloc e realloc.
Che genere di dubbi?
Marco

Francesco B. <bbf...@NOSPAMyahoo.com> wrote:
Ho controllato e funziona tutto, grazie mille!!
Ora però avrei un altro problema:
ho scritto il seguente programma che data una sequenza di numeri
(allocando la memoria dinamicamente) ridà l'inversa dopo aver digitato
-1. Tutto funziona tranne il ciclo per stampare all'inverso, perchè?
-----------------------------------------------
#include <stdio.h>
#include <stdlib.h>
/* allocazione dinamica */
main ()
{
int *p, i=0, n;
printf ("inserisci la sequenza di numeri \n");
p=(int *)calloc(1,sizeof(int));   /*alloca la prima cella*/
 
  do
  {
   scanf ("%d", &n);   
   p[i]=n;    
   p=(int*)realloc(p,(i+2)*sizeof(int)); /*rialloca per la cella
successiva*/
   i++;
   }while (n!=-1);
 
 
   printf ("la sequenza inversa è \n");  
   do 
   {
    printf ("%d \n", p[i-1]);
    i--;
   }while (i==1); 
}
--------------------------------------------
l'errore è nel ciclo: 
do 
   {
    printf ("%d \n", p[i-1]);
    i--;
   }while (i==1); 
}
visto che mi ritorna solo -1
mi potreste aiutare?
Grazie

 visto che mi ritorna solo -1
Certo perchè il ciclo viene effettuato fino a quando i = 1.
In realtà a te serve che il ciclo venga effettuato sempre fino a quando i
diventa diverso da 1, quindi
}while(i!=1);
Saluti Gigi.

 }while(i!=1);
 
Ti ringrazio, ho capito!!
scusa ma visto che ho l'esame avrei un'altra domanda, mi sapresti dire
perchè anche quando digito -1 questo ciclo non si ferma?
----------------------------------------------------------------
printf ("inserisci componenti primo vettore \n");
        p=(double *)calloc(1,sizeof(double));
 
        i=0; 
        while (n!=-1);
               {
               scanf ("%lf", &n);       
        p[i]=n;
                p=(double *)realloc(p,(i+2));
                i++;
                } 
------------------------------------------------------------------

         while (n!=-1);
basta che togli il punto e virgola dopo while (n!=-1)
come hai scritto la scanf non viene mai eseguita.
Comunque, quando hai dubbi su cio' che sta accadendo compila con opzione -g
ed esegui l'applicativo con gdb <nome_applicativo>. Oppure usa l'opzione
build and debug di Project Builder.
Per ultimo qui siamo OT, per questi messaggi si addice di piů it.comp.lang.c
In bocca al lupo per l'esame.
Gigi.

 In bocca al lupo per l'esame
crepi!
Ti ringrazio, sei stato molto gentile.
Bye.

 mi potreste aiutare?
Le mie conoscenze attuali sul C sono ancora basiche.
Purtroppo continuo a rimandarne lo studio.
Mi sa che non sono ancora bene preparato per poterti dare una risposta.
