mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: Perchè non si ferma?! fgets...

Ciao a tutti!
Sono andato a leggere dei vostri post precedenti, e ho visto che,
per leggere dati da tastiera, è necessario utilizzare la funzione
fgets. così ho fatto! Ma proprio non riesco a capire perchè il cursore
del prompt non attenda l'introduzione della mia stringa!
Va direttamente alla fine del programma!
Ecco il frammento di codice:
*********************************************
char frase1[80];
printf("Inserisci una stringa:");
fgets(frase1,80,stdin);
printf("Stringa inserita: %s",frase1);
**********************************************
Non mi permette di leggerla quella "famosa" stringa!
: |
Ciao a tutti e grazie a chi si prenderà la briga di risolvere
questo problema.
Merendina

 del prompt non attenda l'introduzione della mia stringa!
forse hai prima un'istruzione che legge l'input non consumando lo '\n'. 
Per esempio una scanf:
http://c-faq.com/stdio/scanfinterlace.html
(la stessa faq dovrebbe essere anche utile a xtas02 per il post precedente)
-- 
Cybertoldo
Per rispondermi via email, sostituisci moc.liamg con 
gmail.com

 precedente)
Hai ragione Cybertoldo, infatti ho risolto inserendo prima
l'sitruzione seguente:
fflush(stdin);
anche se credo di aver "sporcato" il codice C utilizzando codice C++ 
(credo...boh!)
Comunque funziona.
Grazie per le FAQ, sono già tra i preferiti di Mozilla!
: )
Merendina 

 fflush(stdin);
Assolutamente no.
E anche per questo argomento ci sono delle FAQ:
http://c-faq.com/stdio/stdinflush.html
http://c-faq.com/stdio/stdinflush2.html
Ma ti consiglio di leggerle tutte: 
http://c-faq.com/
Sono li' per questo :)
Ciao


"Cybertoldo" <cyber...@moc.liamg> ha scritto nel messaggio 
news:eo301u$gf6$1...@registered.motzarella.org...

Accidenti!
Comunque voglio dirti (e dire) una cosa: provengo dalla programmazione
con il linguaggio Java, molto bello, interessante, permette di fare cose
ůdavvero interessanti e divertenti. Molti libri su Java hanno questa frase:
"java č il linguaggio delle reti, il C e il C++ sono stati rimpiazzati da 
java"
eccetera, eccetera.
Io studiai C e C++ solo per qualche esame universitario, poi ho imparato 
Java,
J2EE, J3D che permette di fare cose molto carine in grafica 3D, eccetera.
Ricordo un esame in cui si utilizzava la libreria OpenGL con C++, tutto era 
molto
pesante, perň si potevano fare anche li parecchie cose interessanti.
Adesso, da qualche giorno, ho ripreso a smanettare in C, perchč non credo 
completamente
a quello che dicono i libri; secondo me C e il C++ possono fare cose che il 
Java si sogna!
Ho visto molti listati sulle reti, su libri che parlavano di sicurezza, su 
libri che parlavano
di hacker, insomma: questi listati sono scritti tutti in C!
E poi in Java i puntatori non ci sono, perchč dicono "non servono"?!
Ma sarŕ vero?
Secondo me la programmazione in C č molto piů divertente proprio perchč devi 
davvero
avere un controllo completo su quello che stai scrivendo. Non ti puoi 
improvvisare.
Un esempio č proprio questo fflush(stdin) che mi aveva risolto (almeno 
sembrava) parecchi
problemi.
Ciao!
Merendina
Newsgroup: it.comp.lang.c
Titolo: Parentesi graffe...

_______
Ciao a tutti....
sul mio portatile non ci sono le parentesi graffe  ne la tilde..... come
faccio a stampare a video o a scrivere un programm c/c++ senza quelle?
Premetto...ho provato con i vari tasti alt+....sul vecchio computer
funzionavano sul portatile no...che faccio?
Ripremetto...uso il msc++ versione 4.0
grazie a tutti in anticipo.
ciao alessio
ales...@bigfoot.com
--_____________________________________________________________________
_________________
If you have ICQ my ICQ# is 12998839 or 26999980
If you don't have ICQ you can page me through:
*My personal Comunication Center: 
http://www.mirabilis.com/12998839
 (go
there
and try it!)
* Or you can send me e-mail to 
1299...@pager.mirabilis.com
2699...@pager.mirabilis.com
you can download ICQ at 
http://www.icq.com/
Include your ICQ details in YOUR e-mail signature:
http://www.icq.com/emailsig.html

funzionavano sul portatile no...che faccio?
Mi sembra molto strano che le combinazione alt+123 e alt+125 non ti
diano { e } forse stai sbagliando qualche cosa.
Prima di tutto c'è da premettere che alcuni portatili (ad esempio il
mio) non hanno un tastierino numerico isolato e indipendente, ma lo
trovi nascosto tra le lettere normali, per realizzare le combinazioni di
cui sopra o qualsiasi altra non puoi allora utilizzare i numeri normali,
ma devi attivare prima il Num Lock che ti abilita il tastierino e poi
utilizzando quei numeri realizzare le combinazioni che ti interessano.
Spero di aver risolto il tuo problema
Gallus
Newsgroup: it.comp.lang.c
Titolo: File

in linguaggio C come e possibile  cancellare il contenuto di un file.txt?
Grazie
Ciao a tutti

Tratto da
$ man fopen
...
 w      Truncate  file  to  zero length or create text file for writing.
              The stream is positioned at the beginning of the file.
...
Quindi se apri in modalita` "w" azzeri il file (o lo crei se non esiste)
Mike ha scritto:



...ti rigrazio, ho scordato di dire per compilatori
Djggp e MInGW.
Grazie

Bhe` ma e` standard C, o sbaglio?
Mike ha scritto:



credo che sia standard C.
Ciao

Newsgroup: it.comp.lang.c
Titolo: Librerie grafiche per C in ambiente Linux

Ciao a tutti.
Qualcuno sa darmi indicazioni per trovare librerie grafiche per C in
ambiente Linux:tutorial,download,esempi...
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Ciao a tutti.
Qualcuno sa darmi indicazioni per trovare librerie grafiche per C in
ambiente Linux(tutorial,download,esempi...)?


ambiente Linux(tutorial,download,esempi...)?
In modalita' console cerca le ncurses (nelle manpages hai i prototipi delle
funzioni), sotto X ci si puo' sbizarrire... l'interfaccia grafica per
definizione e' Motif (nel senso che Motif e' l'interfaccia grafica di
X Windows).
Prova a cercare in rete e troverai Gb (in inglese) di roba!
Ciaooo

 
http://www.libsdl.org/
queste fanno al caso tuo... spero
ps. normalmente sono installate su
tutte le maggiori distribuzioni
bye
Namko
Newsgroup: it.comp.lang.c
Titolo: Domanda base su C++ Builder .....

Salve a tutti,
sono nuovo di questo newsgroup e volevo chiedere una cosa per iniziare a
programmare......
Conoscete un sito web per avere un manuale base per il C in quanto conosco
la base della programmazione
in generale e il Pascal ma non conosco i comandi base del C ........ per poi
poter utilizzare il Visual Builder C++.
Ringrazio subito.
Ciao......
--
Marco - Roma

 poter utilizzare il Visual Builder C++.
Perche` mai?  Usa Delphi, equivalente al C++ Builder ma basato
su Pascal: potrai sfruttare appieno le tue conoscenze gia`
esistenti, evitandoti di impelagare con un linguaggio potente
si`, ma VERAMENTE complesso.  Usa it.comp.lang.delphi.
Alex

 poter utilizzare il Visual Builder C++.
Apparte il consiglio di Alex...
cmq per qualche manuale del C puoi vedere le FAQ su 
www.programmazione.it
Per imparare il C++ non è necessario imparare prima il C.
Spesso viene consigliato di partire direttamete dal C++... chiedi sul NG
it.comp.lang.c++
--
______________________________
per rispondere Brain(a)
infinito.it
bye Brain

 wrote in message
8i8gnk$nmh$1...@sirmdpsin16.inwind.it...


 > poter utilizzare il Visual Builder C++.



Ciao

Newsgroup: it.comp.lang.c
Titolo: Consiglio libro"Unix network programming"

Ciao a tutti.
Tempo fa mi e' stato consigliato questo libro per comincare ad imparare la
programmazione rete sotto linux.
Andando il libreria non ho pututo trovarlo , in quanto mi hanno detto che
c'e' solo l'edizione in inglese.
Anche se conosco un po' l'inglese per me sarebbe meglio un libro in
italiano.
Sapete consigliarmi?
Grazie a tutti

 
UNP dello Stevens e` il migliore, per la programmazione di rete.
Cerca altro solo se l'inglese e` proprio una brutta bestia, per te.
Adieu,
-- 
Lestat de Lioncourt  -- a.k.a --  Ciro Mattia Gonano
 Undergraduate student in Computer Science at University of Bologna
 IHGGer #1049   <=>  ICQ#: 52631406   <=>   URL: 
http://www.CS.UniBO.It/~gonano
 Debian admin at 
Students.CS.UniBO.It
 <=> look at headers for my JabberID & GPG

 UNP dello Stevens e` il migliore, per la programmazione di rete.
E non solo: i primi tre capitoli sono un bel riassunto dell'architettura 
Unix (almeno per quanto riguarda IPC e lock) che IMHO meriterebbero 
tranquillamente di essere un volumetto a se` (del tipo "Not-so-advanced 
programming in the Unix environment" ;-)
Riguardo alla lingua inglese: tanto bisogna abituarcisi prima o poi...
-- 
   |   \    \  | ___|_  |_  | ianezz a casa sua... :-)
   |  _ \  | \ | _|    /   /  Visita il LinuxTrent a
  _|_/  _\_|  _|____|___|___| 
http://www.linuxtrent.it

 Sapete consigliarmi?
un corso di inglese. Non puoi fare affidamento sulle traduzioni: sono
sempre in ritardo e pochi editori hanno buoni traduttori.



Puoi provare a buttare l'occhio anche qui, in particolare alla seconda
parte:
http://gapil.firenze.linux.it/
Mirko

grazie a tutti.


Ti hanno informato male, c'e' anche l'edizione in italiano.
Il titolo completo e' "UNIX Sviluppo del software di networking"
E' edito dalla Jackson Libri.
Newsgroup: it.comp.lang.c
Titolo: tagliare pezzi di file con c

dato un file in formato testo è possibile utilizzando il linguaggio di
programmazione c (o c++) tagliare una zona centrale del file stesso
senza ricorrere alla creazione e copia di nuovi files?


Vale sia per i file di testo che binari.
Unico prerequisto: la possibilità di identificare le posizioni nel file 
di inizio e di fine della zona da tagliare.
Per file arbitrariamente (filesystem permettendo): soluzione generale
Ti segni l'inizio della parte da tagliare e la fine.
Conun buffer, leggi tutto quello che sta dopo alla zona da tagliare e lo 
scrivi a partire dall'inizio della zona da tagliare.
Calcoli la nuova dimensione del file (dimensione file originale - 
dimensione zona da tagliare) ed esegui una truncate della lunghezza del 
file a quella dimensione
Per file piccoli (che possono stare interamente in memoria): soluzione 
particolare
Leggi il file in memoria, lo rielabori come array di 
caratteri/parole/linee/paragrafi (quello che più ti viene comodo) 
rimuovendo la zona non desiderata, modifichi quella array e dopo aver 
troncato il file a 0 byte la scrivi sul file.
Implementabile in (quasi) qualsiasi linguaggio.
Un backup del file originale (almeno durante le prove) è fortemente 
consigliato.
LP

Newsgroup: it.comp.lang.c
Titolo: C... dove?

Ciao a tutti,
qualcuno, sa dirmi dove posso trovare una versione aggiornata del C che giri
sotto windows xp? A parte in negozio :-P ovviamente...
Ringrazio anticipatamente.
Cooper.

Cooper wrote:

Cerca (Google e' tuo amico):
- DJGPP
- Dev-C++
- LCC-Win32
- Cygwin (anche se non e' esattamente quello che cercavi, immagino)
Beh, poi ti rimane il Visual C, anche se non apprezzo molto il compilatore 
(al contrario dell'editor integrato che e' molto buono).
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."

(al contrario dell'editor integrato che e' molto buono).
Perche'? Mi sembra buono, aderente allo standard (C89, non si puo`
invece dire la stessa cosa per il C++) e veloce. (Mi riferisco alla
versione con VS6, non a quella di VS.Net)
-- 
Marco Barisione (ICQ 84277092)
Newsgroup: it.comp.lang.c
Titolo: [cross] disperato aiuto

Ho sviluppato una applicazione multipaittaforma (gira sia su linux che in 
dow e win).Ora devo costruire l'interfaccia grafica.Volevo usare PDCURSES 
quindi ho scaricato la lib e la ho installata ma,non si compila nulla.Su 
DJGPP il make degli esempi mi da sempre errore e in linux persino mi si 
blocca il ./configure!!!
C'è nessuno che ha usato o usa pdcurses???
E' possibile che non vi sii un tutorial su come usare la lib?????
Ne esistono altre librerie portabili sui vari sistemi op descritti 
prima!!!
Datemi una mano sono disperato!!!
GRAZIE
<<SAX>>

 descritti prima!!!
le qt ( 
www.trolltech.com
 ), mi sembra, ma si pagamo... (se il prog non è open)
(F/Up impostato)
ciao
-- 
Max "overrider" (aka Stranger)

 prima!!!
Credo che anche gnome sia multipiattaforma.
Ciao
  Andrea
-- 
Sognatore e' un uomo coi piedi saldamente ancorati sulle nuvole

 
WxWindows 
http://www.wxwindows.org/
QT 
http://www.trolltech.com/
-- 
Valter Minute
vmi...@inwind.it
 (the reply address of this message is invalid)

Scusate ma non mi sono spiegato bene a me server una lireria per la 
gestione della consol!!!!Tipo Ncurses ma multi piattaforma!!!!!
GRAZIE
<<SAX>>

Tipo Ncurses ma multi piattaforma!!!!!
ncurses
-- 
Marco Barisione (ICQ 84277092)

On Wed, 10 Jul 2002 17:01:51 GMT, SAX 
was talkin'about:
#define IMHO

Non conosco le pdcurses ma le ncurses girano sia sotto unix che win. Per dos
non so, ma fai prima a provare.
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail** 
-<! Gesu' e' morto per i nostri peccati.  Non rendiamo inutile il suo
	martirio non commettendone !>-

Si ma è portabile in dos e windows ???Sul sito ho visto che sarà 
dispomibile dalla prossima versione,o mi sbaglio!!!!
Ma con Ncurses posso compilare almenoo su dos!!!
Grazie
<SAX>

prima!!!
Sono sicuro che esistono altre librerie multipiattaforma, avevo letto
qualcosa su un paio di numeri fa di Inter.net, ma non ricordo bene il 
nome.
Ciao
-- 
Antonio
| Pretendi una risposta immediata dal NG?
| Puoi ottenerla!
| 
http://groups.google.com/advanced_group_search

Newsgroup: it.comp.lang.c
Titolo: Aiuto !!!

Ho appena installato il compilatore GNU , non so quale comando dare per fare
compilare il mio file hello.c cosa devo scrivere?
c:>\gcc ? hello.exe hello.c
grazie a chi mi aiutera!!

compilare il mio file hello.c cosa devo scrivere?
gcc hello.c -o hello
ma leggere la documentazione?
Oha
-- 
A: Is FOR an acronym or a TLA?
B: the second.

 gcc hello.c -o hello.exe
cosě facendo compili e linki insieme!
Newsgroup: it.comp.lang.c
Titolo: piccolo aiuto

essendo alle prime armi...
ho un file il cui contenuto è :
pippo topolino  20
via lunastorta 31
98130 galassia
come si fa a scandire l'intero file dalla prima riga fino alla fine? x
esempio x contare quante parole ci sono...
 di base ci vuole una :  fscanf(fp,"%s",xxx) ma cosi' mi legge solo la prima
parola (pippo)!
come si fa? ..........grazie..........
--
www.sitissimo.3000.it

 ha scritto nel messaggio
news:ID6U6.1934$634....@news.infostrada.it...

Fai semplicemente un ciclo:
int cont=0;
..............
while((fscanf(fp,"%s",xxx))!=EOF)
{
     printf("%s\n",xxx);
   cont++;
}

Newsgroup: it.comp.lang.c
Titolo: textcolor

 TextColor(red). Non che sia importantissimo, ma è una curiosità.
Non in modo portabile. Ci si deve rivolgere a funzioni specifiche
offerte dal proprio compilatore e/o sistema operativo.
EMG

TextColor(red). Non che sia importantissimo, ma è una curiosità.
Esistono sistemi non standard per farlo, che ovviamente possono
variare da compilatore a compilatore.
Su DJGPP e Turbo C++ della Borland trovi comunque le istruzioni:
textcolor(colore); //cambia il colore del testo.
textbackground(colore); //cambia il colore dello sfondo.
textattr( );  //cambia gli attributi del testo.
tutte sulla 'conio.h'.
Ti ricordo poi che per rendere effettive le modifiche ai colori ed
agli attributi del testo devi utilizzare cprintf .
Il Ghenio
-----
Jesse: Preparatevi a passare dei guai.
James: Dei guai molto grossi!!!
(Team Rocket)
-----
Newsgroup: it.comp.lang.c
Titolo: bind che mi fai?

non capisco:
printf("inserisci la porta ;)\n");
scanf("%d", &port);
local.sin_family = AF_INET;
local.sin_port = htons(port);
local.sin_addr.s_addr = htonl(INADDR_ANY);
if ((s = socket( AF_INET, SOCK_STREAM, 0 ))<=0){
        printf("errore in socket\n");
        return 1;
}
if (bind(s,(struct sockaddr *) &local, sizeof(local))<=0){
        printf("errore in bind\n");
        return 1;
}
nel complicatissimo codice qui su' bind mi continua a tornare -1 .... 
perche??
mi staro' rincitrullendo?? un mese fa funzionava benissimo!

 perche??
Puo` essere che la porta sia < 1024?
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
"Sei l'unica donna della mia vita".
(Adamo)

Newsgroup: it.comp.lang.c
Titolo: Cancellazione di elementi da array

Credo che sia l'unica maniera.... fatemi sapere se c'č di meglio!
#include <stdio.h>
void delete_item( char *p, int i )
{
     int j ;
     for ( j = i+1 ; p[j] ; j++ )
     {
         p[j-1] = p[j] ;
     }
     p[j-1] = '\0' ;
}
int main()
{
    char v[] = "andrea laforgia" ;
    puts( v ) ;
    delete_item( v, 6 ) ;
    puts( v ) ;
    return 0 ;
}
--
Andrea Laforgia (ICQ 87230455)
http://www.geocities.com/AndreaLaforgia
"ci sono tre tipi di persone nel mondo : quelli che
 sono bravi in matematica e quelli che non lo sono."

uno di scrittura... ad esempio
etc.....
E' vero, č una soluzione molto migliore!
Non ci avevo pensato perchč ho estrapolato la mia soluzione adattando
un'altra procedura che non aveva lo scopo di eliminare un elemento, ma
quello di sostituire un elemento di un array con un numero variabile
di elementi, come dire (parlando di array di char) inserire una
stringa in mezzo ad un'altra
Se avete soluzioni piů entusiasmanti anche per questo, fatemi sapere!
;-)
A presto, Giuseppe
Newsgroup: it.comp.lang.c
Titolo: fflush

di preciso cosa fa questa istruzione?
fflush(stdout) svuota il buffer di output? e fflush(stdin) quello in
entrata!?
Questi non fanno parte della libreria e cmq della gestione dei file?
Se usato da solo...fuori dalla gestione dai file?
dubbi dell'ultimo minuto :P mentre il panico mi pervade sempre di più!
thx
byez
B@STI

Se usato da solo...fuori dalla gestione dai file?
stdio.h
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."

 Mox
byez
B@STI

 Se usato da solo...fuori dalla gestione dai file?
Il parametro e`  un FILE *, quindi l'uso di  fflush non puo` prescindere
dall'uso degli stream.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Io mi ricordo sempre il compleanno della mia ragazza:
cade il giorno dopo di quando lei me lo ricorda

 stampa di debug)
- quando cambi il verso di utilizzo di uno stream
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Quando un uomo porta dei fiori a sua moglie senza motivo, 
un motivo c'e`.

 entrata!?
La gestione dei flussi della libreria standard e` "bufferizzata", ossia 
la libreria usa, per ottimizzare le operazioni di I/O, una regione di 
memoria che, in taluni prefissati casi ed in funzione di come si 
configura lo stesso flusso, vengono letti o scritti da o sul disco. La 
funzione fflush() forza la scrittura del buffer anche se non si 
verificano le condizioni di cui sopra. L'applicazione di fflush() sul 
flusso standard di input produce, invece, un comportamento indefinito 
(ovvero, ogni implementazione la gestisce come... preferisce), per cui 
e` un idioma non consigliato.
-- 
Baci,
Mony

 di svuotare i buffer.
Non c'entra nulla. La gestione dell'I/O del sistema operativo non 
rientra nelle tematiche coperte dalla libreria standard, la quale si 
limita a chiamare la primitiva di sistema per la scrittura in caso di 
utilizzo di fflush() su un buffer in uscita. A sua volta, questa 
primitiva puo`, o meno, scrivere effettivamente il buffer su disco, 
oppure memorizzarlo in un ulteriore buffer, al quale, ripeto, la 
libreria standard non ha accesso. Quello di cui tu parli, invece, puo` 
essere richiesto direttamente al sistema in taluni casi, come, per 
esempio, accade nei sistemi POSIX-compliant, con la primitiva sync().
-- 
Baci,
Mony

e quindi quando lo devo usare?! O meglio...quando lo posso usare?! Nn riesco
a capirlo...l'ho visto in alcuni listati...ma non riesco a capirne la
funzione!
thx
byez
B@STI

Non c'entra nulla.
Ho preso una cantonata, scusa :)  Dev'essere la febbre :)
Perdono :)

Newsgroup: it.comp.lang.c
Titolo: output in formato exel !

Ho il seguente problema.
Devo far in modo che i dati che elaboro sul mio programma in C, siano
riversati come output in un file di Excel.
Vorrei sapere se esistono delle librerie che fanno questo, oppure dei
programmi ad hoc che si interfacciano con il Excel.
Grazie !

 wrote in message
news:pJ8Ta.194790$Ny5.5...@twister2.libero.it...

Sei un tantino OT, qui si parla solo di C standard.
Pero' ti do' un aiutino lo stesso (in C standard).
Excel ha due formati file: .xls e .csv; il primo e' binario, il secondo e'
solo testo.
Per cui, fai la tua fopen del caso, e ci scrivi dentro i tuoi dati; ogni
riga di testo e' una riga di excel, e separi le colonne dentro una riga con
i ";".
In C standard non credo si possa fare molto di piu'.
Se sono dati, pero', dovrebbero bastarti una fopen, una fclose, e una
manciata di fwrite - quello che ti serve per scrivere un .csv.

 wrote in message
NV8Ta.20349$sj6.4...@tornado.fastwebnet.it...

Newsgroup: it.comp.lang.c
Titolo: Info su porta parallela

Stavo giocherellano con un motore passo passo collegato alla parallela, 
e notavo che la velocità alla quale riesco a farlo ruotare è abbastanza 
bassa, un giro al secondo, quindi 48 impulsi= ~100hz?
Mi chiedevo se il limite è il programma cha ho scritto oppure 
l'hardware.. nel caso sia il programma, cosa potrei scrivere di + veloce?
segue il listato,
non ridete.
..........
main
{
  sscanf(argv[1],"%i",&PORT); // Get PORT value (ie. 0x378)
  sscanf(argv[2],"%d",&velocita);
if (par_data>255)
       fprintf(stderr, "ERROR: DATA entered is not a number.\n"), 	exit(1);
if ((par_data<0) || (par_data>255))
       fprintf(stderr, "ERROR: DATA  must be between 0 and 255\n"), exit(1);
 
if (ioperm(PORT,1,1))
       fprintf(stderr, "ERROR: Can't gain access to port %x\n", PORT), 
exit(1);
while (!stop){
     par_data=1;
     outb((unsigned char)par_data, PORT);
     ritardo.tv_nsec=velocita; //in nanosecondi
     nanosleep(&ritardo, &resto);
     par_data=0;
     outb((unsigned char)par_data, PORT);
     nanosleep(&ritardo, &resto);
     i=i+1;
     if (i>=1000)
     stop=1;
     }

     i=i+1;
i++;      // Un po' di stile...

 i++;      // Un po' di stile...
ho provato, ma non incrementa il ciclo.. non è che i++ è un operatore c++?
piuttosto, che funzioni o algoritmo posso usare per calcolare la 
funzione inversa del seno:
invece di
n=sin(angolo)
angolo=invsin(n)
per capirci...
non mi pare che ci sia in tgmath.h
(ho sempre usato il tasto [inv][sin] sulla calcolatrice e non mi sono 
mai preoccupato di come si calcola..)
ciao Davide

funzione inversa del seno:
Credo che sia:
n=1/sin(angolo);

 ha scritto nel messaggio 
news:6ee0r1lhcg8s2768v...@4ax.com...

ahhhhhhhhhhhhhhhhhhhhhhhhhhhh!!!!! mi sento morire !!! 

 ha scritto nel messaggio 
news:6ee0r1lhcg8s2768v...@4ax.com...

a parte scherzi...
come definito in math.h, la funzione è asin(angolo)

> n=1/sin(angolo);
y =sin(x) = cateto verticale / ipotenusa,
dove ipotenusa è costante e =1
quindi la funzione inversa è trovare l'angolo dato il cateto
verticale che va da -1 a +1;
Ipotizziamo di lavorare tra angoli [0;pi/2]
prendi pi/4 e fai sin pi/4 controlli se il tuo valore y che è noto è 
maggiore o minore;ricorsivamente, se è maggiore aggiungi la meta dell'angolo 
utilizzato (ovvero pi/8) e ricalcoli altrimenti sottrai; se invece l'errore 
è contenuto in quanto da te stabilito stoppi l'altoritmo.
Il tempo di esecuzione supponendo un errore di pi/2^n è di n passi quindi 
hai che per esempio dopo 10 passi il tuo angolo è definito con una 
precisione di... 3.14/1024 ~= +-0.00314 radianti
Chiaro che sfrutti sempre la funzione sin  !!!!
Newsgroup: it.comp.lang.c
Titolo: Catturare un'eccezione

Salve a tutti.
Ultima domanda, giuro! :D
Poniamo il caso che io faccia una scanf() e che dentro scanf() 
come argomento ci sia "%d".
Ora, se qualcuno da tastiera, invece di inserire un decimale, 
inserisce una lettera, come faccio a catturare l'eccezione?
Ancora grazie a tutti.
-- 
Lord Gas, the Waxen - Blasfemo di IFTMDG - Penguin's Enemy #1 
[ICQ: 57483751][the Waxen Pith: 
http://www.snipp.org/gas
]
... "Goddamn, there's always such a big temptation to be good"
... (Tom Waits - God's Away on Business)

inserisce una lettera, come faccio a catturare l'eccezione?
Il C non prevede il sollevamento di eccezioni.  
La gestione dell'input è tutta nelle tue mani. 
scanf() e le sue derivate, se non per usi molto specifici e MOLTO
controllati, va messa nel dimenticatoio.  Bisogna usare fgets() (come,
tra l'altro, ti è stato già consigliato in un altro gruppo) ed
eseguire un controllo a mano sul valore letto.
-- 
Andrea Laforgia - a.laforgia(at)
libero.it
"There are three kinds of people in this world; 
 those who are good at maths and those who aren't".

 Ancora grazie a tutti.
Ti riporto l'output del man per scanf. E' abbastanza esplicativo e mi sembra
risponda alla tua domanda, quindi non mi dilungo.
Ciao,
Ema
----------------------------------------------------------
int scanf(const char *format, ...);
RETURN VALUE
       These functions return the number of input items assigned, which can
be
       fewer than provided for, or even zero, in the event of a matching
fail-
       ure.   Zero indicates that, while there was input available, no
conver-
       sions were assigned; typically this is due to an invalid input
charac-
       ter,  such as an alphabetic character for a `%d' conversion.  The
value
       EOF is returned if an input failure occurs before any  conversion
such
       as  an end-of-file occurs. If an error or end-of-file occurs after
con-
       version has begun, the number of conversions  which  were
successfully
       completed is returned.
----------------------------------------------------------

Newsgroup: it.comp.lang.c
Titolo: Func_ptr()

Ho un puntatore a funzioni  Int (*Func_ptr)(int,int);
Se faccio:
Func_ptr=media; <<< media è un altra funzione
o
(*Func_ptr)=media;
Perchè non cambia nulla... il compilatore non mi da nè errori nè warning.
Rispondete(se volete) Grz ;-)


prendi le mie risposte con le molle che sono un recente autodidatta con poca
esperienza ... alle volte mi confondo ancora ...
ciao

 Cosa sarà....??
È il modo corretto per assegnare l'indirizzo di una funzione ad un puntatore
a funzione.
Ciao
Newsgroup: it.comp.lang.c
Titolo: Banalità

Scusate se se approfitto ancora dell'ospitalità di questo NG, ma non ho
ancora
trovato risposta ad un mio quesito precedentemente espostovi.
In breve vorrei sapere come spostare il cursore verticalmente utilizzando le
funzioni della libreria standard.
Ad esempio, utilizzando la sequenza '\v' in una printf() od in una putchar()
non ottengo alcun risultato.
Utilizzo il BORLAND C++ 3.1 in ambiente DOS.
Grazie.

 3.1 in ambiente DOS.
  Questo perche` la tabulazione verticale non ha una definizione
univoca, cosi` come quella orizzontale. Evidentemente il tuo terminale
fa equivalere "\v" a nulla mentre, probabilmente, su una stampante il
risultato potrebbe essere diverso. Nota che anche il fatto che "\t"
equivalga ad otto spazi consecutivi e` del tutto convenzionale.
	Alla prossima,
		Marco

funzioni della libreria standard.
Non c'e' modo di spostare il cursore verticalmente in modo standard.
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
"I know every element of C" - Ioannis Vranos

Newsgroup: it.comp.lang.c
Titolo: manipolazione stringhe

Ho bisogno di aiuto per creare una 
funzione che converta una stringa in un 
long. La stringa può presentarsi così: 
1.000.000 e deve essere convertita in
1000000. Oppure può presentarsi come
-1.000.000 e deve essere convertita in
-1000000.
Se poi mi sapeste indicare dove trovare altri
esempi sulla manipolazione di stringhe di altro
genere ve ne sarei molto grato.
Ciao. Massimo.
------------------------------------------------------------------------
Questo messaggio e' stato inviato con Telemail 
http://www.telemail.it
 , 
    La freemail per la comunicazione unificata gratuita
-- 
Posted from [212.177.57.29] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

-1000000.
Aggiungici i controlli d'errore :
long str_cvt( const char *s )
{
     int i, j ;
     char *p, t[100] = { 0 } ;
     for ( i = 0, j = 0 ; s[i] ; i++ )
         if ( s[i] != '.' )
            t[j++] = s[i] ;
     return strtol( t, &p, 10 ) ;
}
--
Andrea Laforgia (ICQ 87230455)
------------------------------ 
#exclude <windows.h>

}
Saluti,
    Mardy

Ad occhio qui serve: t[j] = 0;
No. 
C'e' l'inizializzazione di t :
char *p, t[100] = { 0 } ;
--





}
L'inizializzazione che c'e' nel mio esempio e' quella che avviene a
tempo di dichiarazione della variabile.
Devi scrivere :
int B[MAX] = {0} ;
Questo vale con tutti i compilatori ed e' la forma corretta.
--
Andrea Laforgia (ICQ 87230455)
"ci sono tre tipi di persone nel mondo : quelli che
 sono bravi in matematica e quelli che non lo sono."
Newsgroup: it.comp.lang.c
Titolo: ANSI-C

Avrei bisogno di convertire le seguenti funzioni in ANSI-C:
gotoxy,
textcolor,
textbackground,
clrscr.
Inoltre avrei bisogno di determinare, date le coordinate x e y il carattere
stampato sullo schermo a tali coordinate (in modalità testo).


wrote:

non mi sembra esistano funzioni ansi per la grafica, correggetemi se
sbaglio !!
PS : perche' le vuoi proprio in standard ansi ? 
## Marco Mazza
## Undergraduate Student of Computer Science
## University of Bologna, Italy
## E-Mail(1): 
mir0...@MO.NETtuno.it
## E-Mail(2): 
MarM...@CS.UniBO.it
 
## Home: 
www.cs.unibo.it/~marmazza

clrscr.
so che esiste ncurses, e` la libreria piu` portabile che conosco per
fare queste cose, ma non sono ANSI, perche` nella libreria standard
non esiste niente del genere.
Buon Natale a tutti
[ranger, email: 
ran...@queen.it
]

 stampato sullo schermo a tali coordinate (in modalità testo).
non ricordo bene dove inizi la memoria video in modalità' testo, ma ponendo
il caso che la memoria video inizi all'indirizzo Z ti basta ricavare
l'indirizzo del carattere con un calcolo di questo tipo:
indirizzo = Z + x + (y * 80)
e poi leggerlo ed assegnarlo ad una variabile.
Ciao...
Newsgroup: it.comp.lang.c
Titolo: algoritmi matematici

salve
prima di tutto voglio dirvi che sono un neofita nel campo della
programmazione e specialmente in quella in C.
Da qualche giorno, e scopo didattico voglio realizzare una specie di
calcolatrice multifunzione con il C, anzi un miscela poco uniforme di
C e C++.
Sono arrivato a 18 funzioni tradizionali e scientifiche ma a desso
vorrei aggiungere qualche algoritmo risolutivo per calcoli speciali
come ad esempio il numero fattoriale e la conversione da numero
binario a decimale e viceversa, derivate, integrali ecc....
qualcuno sa indicarmi dove posso trovare informazioni o algoritmi già
implementati in C per risolvere problemi matematici?
grazie in anticipo :-))))
 
 
   Bl@cK BirD 
 
  -=WebDesigner=- 
  ICQ#: 14491159
 
 
hn...@tin.it
 
michele...@hotmail.com
 
 Home Page
 
http://fly.to/black_bird
 
 MillenniuM fan club:
 
http://www.geocities.com/Area51/Dreamworld/3204/

 
Cerca in rete per 'Numerical Recipes' oppure cerca 'netlib' il primo e'
un libro di calcolo numerico con annesso dischetto delle funzioni
disponibile anche su internet la seconda e' una raccolta di
applicazioni  di calcolo numerico, quest'ultima e' disponibile su
ftp.unina.it
Marco Colandrea

Newsgroup: it.comp.lang.c
Titolo: differenza fra tornare void e tornae un puntatore a void.

salve a tutti,
smanettando con i thread in c (libreria pthread.h) mi e' stato chiesto di 
defnire la funzione 'body' del tipo: void *body(void *arg), funzione che 
prende e restituisce un puntatore a void.
Poi nell'esempio trovo questo codice:
______________________
void *body(void *arg)
 my_struct * p = my_struct *)arg;
 /* corpo della funzione in cui
  * smanetto su *p
  */
 return 0;
}
______________________
Il mio dubbio amletico e' tutto nel ritorno della funzione:
return 0;  // ?!!?!
cos'e' che ritorno, l'indirizzo "0000000" ?
A che scopo?
E' questione di qualche dettaglio implementativo rinchiuso nei sorgenti 
della libreria pthread.h oppure c'e' un motivo ovvio (che a me sfugge) per 
cui ha senso tornare un puntatore a void di indirizzo zero? 

 A che scopo?
Non mi è chiaro quale sia il tuo dubbio. 0 è un valore valido per un void*.
Le API pthread prevedono che la funzione passata a 'pthread_create'
restituisca un void*. Il significato del valore restituito dipenderà
unicamente dall'uso che ne farà l'applicazione. Tale valore sarà
accessibile quando si eseguirà una 'pthread_join'. Se l'applicazione non
attribuisce alcun significato al valore restituito, la funzione può
restituire qualsiasi cosa, compreso 0.
Il mio dubbio invece riguarda il significato del tuo subject, che non mi
pare coincida con il contenuto del post.
Max

cos'e' che ritorno, l'indirizzo "0000000" ?
Restituisci il valore nullo per il puntatore.
Lo zero è un valore valido per i puntatori, in C.
Newsgroup: it.comp.lang.c
Titolo: spazio reale occupato da una stringa

Salve ragazzi..
avendo la memoria corta pensavo a rileggere un paragrafo del capitolo
sulle stringe.. (ho il libro di Peter Aitken) e ho letto una frase che
non riesco a capire:
"Lo spazio reale occupato dalla stringa nell'array è casuale, infatti
l'unica funzione dell'array è quella di fornire uno spazio in cui
allocare la stringa"
Sulla seconda parte sono d'accordo ma non riesco a comprendere "Lo spazio
reale occupato dalla stringa nell'array è casuale"
cioè io penso che se faccio char array[5] = "ciao"; non penso vengano
messe casualmente.. infatti array[0] == c array[1] == i ecc.. sbaglio o
quello che sto dicendo non c'entra niente con quello che voleva dire
quella frase?

 ha scritto nel messaggio
news:pan.2002.01.03.20...@tiscalinet.it...


 > quella frase?
Significa che la memoria gestita dalla stringa è casuale, esempio
c sulla cella di memoria RAM  1232131
i sulla cella di memoria RAM  23465234
a sulla cella di memoria RAM  1251245
o sulla cella di memoria RAM  213521
comunque l'array è array[5] gestito sequenzialmente
ciao duido
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 o sulla cella di memoria RAM  213521
Questo è interessante e mette anche in dubbio tante mie conoscenze. Potresti
far vedere con quale programma hai ottenuto tutto ciò?
Io ho fatto questa prova:
#include <stdio.h>
#include <string.h>
void main(void) {
   int i;
   char array[5] = "ciao";
   for (i = 0; i < strlen(array); i++)
      printf("%c %p\n", array[i], &array[i]);
}
ed ottengo questo risultato:
c 12FF97
i 12FF98
a 12FF99
o 12FF9A
Ho provato anche a mettere la definizione di array fuori la funzione main, o
anche definirla in questo modo:
char *array = "ciao";
ma il risultato è equivalente.
La cosa sorprendente è che quello che dici sembrerebbe in contrasto con
quanto detto nella "bibbia" del C (K&R): "*(pa + 1) si riferisce al
contenuto di a[1]".
Secondo me l'affermazione "Lo spazio reale occupato dalla stringa nell'array
è casuale" ha solo questo significato: l'indirizzo della stringa non
possiamo conoscerlo a priori, ma viene assegnato solo quando il programma
viene mandato in esecuzione.
Maurizio.

 viene mandato in esecuzione.
Perdo parola col NG ma ti ringrazio per avermi corretto, confermo quello che
dici e smentisco quello che ho spiegato in maniera sbagliata sul post
precedente
Voglio scusarmi col NG ma sopratutto con la persona a cui ho risposto.


 
non ti preoccupare.. tutti possono sbagliare ;)
cmq ringrazio tutti per avermi risposto!!
ciau

Newsgroup: it.comp.lang.c
Titolo: problemi di linguaggio

"perdonami se non sono alla tua altezza"
io a fare sto c.zz. di lavoro non mi sto divertendo affatto..
sono ignorante in materia e chiedo...
se per te sono domande troppo stupide non rispondere!!!
ciao\

 ...
ma perchиии non ti trovi un bell'alberello nella foresta, poi ti scegli un
bel ramo al sole con tante foglioline fresche, una bella scipanzи e metti su
casa...eh? non sarebbe bello? eh? eh?
Newsgroup: it.comp.lang.c
Titolo: file in una dir

Esiste una funzione del C per vedere tutti i file presenti in una directory?
Se si come si usa?
grazie, ciao


C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG



Non nella libreria standard del C. Esistono pero` opendir, readdir,
closedir di POSIX.

Newsgroup: it.comp.lang.c
Titolo: WAS:"Un po' O.T.ma è relativo".The End

Rinnovo a tutti i miei ringraziamenti.
Ho finalmente deciso quale sarà il libro che mi guiderà nella giungla dell'assembly:"Linguaggio Assembly per pc IBM"di
P.Norton e John Socha finito di stampare nell'anno 1988 nel mese di ottobre.Io invece lo sto ancora scannerizzando:-).
Chi di voi è il fortunato possessore di una copia del suddetto libro potrà notare che da pag.343 a pag.348 viene fatto
intendere che il disco allegato al libro è indispensabile o quasi.Ed è proprio questo il problema:Chi anima nobile mi
spedirebbe il contenuto integrale del dischetto?
Purtroppo il mio amico non gli ha dato molta importanza ed ora ne siamo sprovvisti entrambi.Colpa sua però io non 
c'entro:-)
Ringrazio tutti per la cortese attenzione.


Certo che sei anche sveglio a violare così apertamente il copyright di
un libro scrivendo
un messaggio così demente (e sgrammaticato) in un gruppo come questo!!
Allora se ti prendi Dev di Gennaio 1998 oltre a trovarci un cdrom
sull'Assembly,ci trovi a
pag 72 della stessa rivista la recensione di un libro sull'Assembly a
cura di Andrea Fasano (che non é un pivello qualunque....).
Sono buono: poiché immagino che tu essendo troppo impegnato in
scanerrizzazioni del suddetto libro, non avrai tempo di procurarti la
rivista,ti do i dati:
Master Class Assembly Languagge 
Autori:I.Chebotko,Y.Kisilev,Y.Petrenko,D.Wronski
Editore:Wrox Press Ltd
ISBN :1-874416-34-6
Lingua:Inglese
Anno:1995
PREZZO: 90.000£
Pagine:987
Allegati: Floppy disk
Sono sicuro che investendo 90.000 £ ti procuri un signor testo (che a
detta dello stesso Fasano non ha nessuna controindicazione e na fa un
ottimo testo di riferimento nel settore dell'Assembly)
e poi non violi NESSUN copyright e soprattutto NON PERDI TEMPO in
minchiate di scanerizzazioni!!!!
Klaus ;-)
P.s.
Ricordati (e strano che nessuno se ne sia reso conto in questo
newsgroup) che saresti passibile di denuncia alla Siae...

...

Newsgroup: it.comp.lang.c
Titolo: Altro warning incomprensibile.

Ciao. 
Intanto volevo ringraziare tutti, in particolare Cybertoldo, per le 
spiegazioni sempre chiare ed esaustive.
Compilando un programma con il solito Borland C++ Builder 5.5, ottengo 
il seguente warning che come al solito non capisco.
[C++ Warning] CTYPE.H(172): W8058 Cannot create pre-compiled header: 
code in header
Ecco cosa riporta la guida in linea a proposito di questo warning.
W8058 Cannot create pre-compiled header: 'reason' 
Compiler warning
(Command-line option to suppress warning: -w-pch)
This warning is issued when pre-compiled headers are enabled but the 
compiler could not 
generate one, for one of the following reasons:
Reason Explanation
[omissis]
code in header One of the headers contained a non-inline function body.
Grazie mille
Bizio.


Ciao
-- 
Cybertoldo
Per rispondermi via email, sostituisci moc.liamg con 
gmail.com
Newsgroup: it.comp.lang.c
Titolo: Calcolatrice

Ciao, mi sto facendo un corso di C, ho fatto questa piccola 
calcolatrice, però non funziona, mi chiede i due valori ma non 
l'operatore....mi sapete dare gentilmente una mano ???
Grazie a chiunque mi risponderà !
/* Calcolatrice */
main()
  {
    int a,b,r;
    char s = '0';
    printf("Inserisci il primo valore \n");
    scanf("%d",&a);
    printf("Inserisci il secondo valore \n");
    scanf("%d",&b);
      switch (s)
       {
        case '+':
         r=a+b;
         printf("La somma e': %d",r);
        break;
        case '-':
         r=a-b;
         printf("La differenza e': %d",r);
        break;
        case '*':
         r=a*b;
         printf("Il prodotto e': %d",r);
        break;
        case '/':
         r=a/b;
         printf("Il resto e': %d",r);
        break;
         printf("Il risultato e': %d",r);
       }
   }

non hai messo la riga in cui chiedi l'operatore.
E' necessaria una terza scanf o qualcosa di similare.
Ciao dnt

[...]
Ti sei dimenticato di prendere input l'operatore:
 printf("Inserisci operatore\n");
 scanf("%c",&s);


Ti hanno gia' risposto, vedo :-( 
Non mi collego piu' tanto spesso.
Un suggerimento: 
studia la funzione getchar e
prova a realizzare la calcolatrice senza
chiedere 3 diversi input, ma uno solo.
Ciao.
Igor Rossetti
Newsgroup: it.comp.lang.c
Titolo: funzione che ritorna vettore

Salve a tutti,
ho un problemino che non riesco a risolvere...
mi serve dare in pasto un vettore a una funzione che fa delle operazioni
sugli elementi, ritornare il nuovo vettore al main e stamparlo.
e' possibile ritornare il nuovo vettore in blocco o per forza elemento
dopo elemento?
come si puo' fare?
la prima soluzione sarebbe piu' comoda.
grazie a tutti.
mirko
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 dopo elemento?
passi alla funzione il puntatore al primo elemento del vettore
e passi indietro il puntatore al primo elemento del vettore
(questo se hai allocato dinamicamente un nuovo vettore,
se il vettore e' quello di prima non c'e' bisogno di
ritornare il puntatore, visto che il vettore non si
e' certo spostato...)
E' una cosa molto standard, vedi qualunque manuale di C.
ciao,
tipo
int *doppia(int *v, int n)
{
   int i, *nuovo;
   nuovo = malloc(n, sizeof(int));
   for (i=0; i<n; i++) nuovo[i]=v[i]*2;
   return nuovo;
}
int main()
{
   int i, *x, *y;
   x = calloc(10,sizeof(int));
   for (i=0; i<10; i++) x[i]=33+i;
   y = doppia(x,10);
   for (i=0; i<10; i++) printf("%d\n",y[i]);
return 0;
}
-------------------------------------------
oppure:
-------------------------------------------
int X[100];
int Y[100];
void Modifica(int * V)
{
   V[0]=V[1]+V[2];
}
int main()
{
// .......
    Modifica(X);
    Modifica(Y);
// ........
    return 0;
}
ciao,
g.

 e' certo spostato...)
Ciao,
innanzi tutto grazie per la risposta.
purtroppo il tuo codice non mi e' chiaro in quanto non sono familiare
con le chiamate
malloc e calloc. e' una cosa che devo ancora studiare ma credo che
servino a modificare
le dimensioni di un vettore durante l'esecuzione del prog, giusto?
il mio vettore mantiene sempre la stessa dimensione, cio' che cambia e
solo l'ordine degli
elementi. mi spiego. devo creare una funzione che ricevuto un vettore di
interi li sposti
di una posizione verso destra. l'ultimo elemento di destra prende il
posto di quello che era il primo
elemento prima dello shift. 
se il mio vettore (un numero) di partenza era abcd dopo un passaggio
alla funzione dovrebbe
diventare dabc. questo sono riuscito a farlo, anche se in maniera
artificiosa e poco elegante,
credo :)
mi servirebbe farlo in maniera ricorsiva, cioe' se il mio numero e'
ancora abcd dovrei riuscire a
stampare
abcd
dabc
cdab
bcda
inoltre ciacun nuovo numero dovrebbe essere contenuto in un vettore da
manipolare in seguito.
e qui mi perdo alla grande, m'ingarbuglio coi puntatori e non ne esco...
se avessi qualche dritta da darmi ti sarei molto grato!
ciao,


}
ehm.. dov'e' che libero la risorsa allocata "nuovo" ?
Newsgroup: it.comp.lang.c
Titolo: memoria

va bene allocare memoria per una matrice n x H di unsigned char cosě? 
unsigned char **a=malloc(n*sizeof(unsigned char*));
for(i=0;i<n;i++) *(a+i)=malloc(H*sizeof(unsigned char));
E' cosa buona e giusta liberare la memoria scrivendo:
for(j=0;j<n;j++) free(a+j); free(*a);
oppure posso farne anche a meno (di liberarla)?
In quali casi posso farne a meno?
Per esempio se la definizione  di sopra (dare il nome alla matrice e
riservare la memoria) č in una procedura *e tale procedura finisce* lo
spazio di memoria della matrica si dealloca senza scrivere niente per
tal fine?
Rosario

On Thu, 08 Nov 2001 17:13:38 GMT, 
levamigi...@yahoo.co.uk
(Giuseppe| |) wrote:
Che fine ha fatto Andrea Laforgia?

In quali casi posso farne a meno?
Dipende.
Un sistema operativo serio dovrebbe liberare in automatico
la memoria all'uscita dal programma, ma visto che non tutti
lo fanno (Windows, compreso), fai bene a forzare la
deallocazione.
-- 
The Follet

Che fine ha fatto Andrea Laforgia?
Dopo aver litigato con se stesso si e' auto-plonkato !!!
ciao, acc.   
a...@libero.it

 Dopo aver litigato con se stesso si e' auto-plonkato !!!
   Non prima di aver forkato una sua nuova istanza. :))
-- 
Alla prossima,
Marco

>>>>> 
ian...@hotmail.com
 <<<<<<
-=[]=--------iAN CooG-------=[]=-

 free(a);
non avevo notato che Giuseppe aveva messo *a


non avevo notato che Giuseppe aveva messo *a
   Anche free(a+j) era sbagliato, al limite free(*(a+j)).
-- 
Totuccio.

The Follet
Grazie

 esecuzione)
Questo si puo' fare solo se la procedura esaurisce 
l'utilizzo della memoria allocata (vedi un buffer
temporaneo per determinate operazioni locali), ma
non e' sempre detto che una funzione possa allocare
memoria e deallocarla prima di uscire.
A volte, serve proprio che non sia cosi'.
Io potrei scrivere due funzioni: allocamatrice() e
deallocamatrice() e tra esse porci tutta la gestione
della matrice allocata.
-- 
Posted from  [80.105.34.80] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Newsgroup: it.comp.lang.c
Titolo: Algoritmi grafi in C

Avete qualche link da consigliarmi sugli algoritmi dei grafi, con 
implementazioni in C? In particolare cerco roba su BFS, DFS, Kruskal e 
Dijkstra. Su google ho trovato parecchie cose, ma mi piacerebbe qualcosa 
di lettura non troppo faticosa e con implementazioni ridotte all'osso 
per la massima chiarezza..
denghiu


non ricordo bene, cmq prova su
ioi.dsi.unimi.it
di sicuro trovi dei problemi per applicarli, appunti non ricordo..
ciao


Robert Sedgewick, Algortimi in C
Ciao

> Robert Sedgewick, Algortimi in C
Gia' ce l'ho!
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Gia' ce l'ho!
e non ti basta?

 wrote in message
fmeNb.39685$Jw2....@tornado.fastwebnet.it...

prova a cercare anche su questo sito:
http://www.cs.sunysb.edu/~algorith/
ciao
Newsgroup: it.comp.lang.c
Titolo: int, unsigned long ...

ciao,
ho scritto un programma dove per un conteggio uso la variabile i che avevo
dichiarato come int.
Tuttavia il conteggio va fino ad oltre 200000 (quindi la i deve diventare
unsigned long).
Anche se io ho dichiarato i come int, il compilatore del c me la promuove
automaticamente al tipo corretto? Chiedo questo perchè risultati sembrano
venire sensati ....
grazie!
--------------------------------
Inviato via 
http://usenet.libero.it

 grazie!
Su gran parte dei compilatori moderni i tipi int e long
coincidono e occupano 4 bytes. Quindi non c'e' nulla di
strano.
In ogni caso (per il futuro) ti consiglio di documentarti
sulla lunghezza dei tipi sul TUO compilatore, onde evitare
sorprese.
ciao,
g.

 risultati sembrano venire sensati ....
Non dici su quale piattaforma (hw/so&compilatore) lavori, per cui
non so quanto grande sono gli int per te.
Sulle piattaforme piů diffuse (win32/linux, VC++/GCC) gli int e i long
sono grossi entrambi 32 bit, per cui arrivi a 2^31 come valore max.
Puoi comunque sapere quanto č il valore massimo di int e
unsigned long guardando quanto valgono le costanti INT_MAX e
ULONG_MAX definite nel file "limits.h" del tuo compilatore
#include <limits.h>
#include <stdio.h>
int main()
{
    printf("int: da %d a %d\n",INT_MIN,INT_MAX);
    printf("unsigned long: fino a %lu\n",ULONG_MAX);
}
p.s.
occhio a signed/unsigned!
-- 
Gerolamo