mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: [domande]buffer

Vorrei sapere chi si occupa di gestire i buffer di input output. Le 
librerie che contengono scanf, getc, putc.. (quindi dei buffer globali 
per tutte le applicazioni scritte in c in esecuzione)?
Oppure e' una cosa interna a ogni eseguibile?
-- 
Devaraja (Xdevaraja87^gmail^c0mX)
Linux Registerd User #338167
http://counter.li.org

 Oppure e' una cosa interna a ogni eseguibile?
Non sono sicuro di aver ben compreso la domanda, ma il buffer degli
stream di I/O e` privato ad ogni stream.
Il tipo di bufferizzazione e la dimensione del buffer possono essere
variati a runtime con la funzione setvbuf (e derivate).
Luca
-- 
Home: 
http://kronoz.cjb.net
Carpe diem, quam minimum credula postero. (Q. Horatius Flaccus)

 
quindi se compilo questo programma
#include <stdio.h>
int main(){int i; printf("aa"); scanf("%d",&i); return 0;}
e ne eseguo due istanze contemporaneamente ho due buffer di output e due 
buffer di input separati? E ognuno si trova dentro alla memoria dedicata 
al suo processo?


 E ognuno si trova dentro alla memoria dedicata al suo processo?
Formalmente ogni stream ha il suo buffer (se non diversamente indicato)
e basta. La separazione tra processi e` una cosa in piu`, ortogonale al
linguaggio C... anche se e` vero che a parte alcune nicchie tutti gli OS
in circolazione implementano qualche schema di protezione della memoria.
Luca
-- 
Home: 
http://kronoz.cjb.net
Al termine di un pranzo di nozze mi hanno dato un
amaro alle erbe cosi' schifoso che perfino sull'etichetta
c'era un frate che vomitava.

Newsgroup: it.comp.lang.c
Titolo: (OT) VENDO LIBRI INFORMATICA META' PREZZO!!!

Ciao
ecco a voi la lista:
Xml passo per passo mondadori £ 70.000 **** 35.000
laboratorio di Vba Apogeo £ 32.000 **** 16.000
Laboratorio di visual basic 6 Apogeo £ 36.000 **** 18.000
Visual basic 6 facile £ 35.000 **** 17.000
Access 2000 per immagini  £ 34.000 **** 17.000
visual basic 6 speedy mcGraw-hill £ 18.000 **** 9.000
Spaghetti hacker £ 30.000 **** 15.000
Linux for dummies £ 42.000 **** 21.000
Linux facile £ 39.000 **** 14.000
Java 2 i fondamenti £ 79.000 **** 38.000
Linux Guida completa Mc Graw hill £ 116.000 **** 80.000
Da windows a linux £. 42.000 **** 20.000
Affrettatevi!
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Affrettatevi!
Passi che sei OT... ma se proprio devi vendere dei libri vendi almeno
dei libri validi :P
Mox

dei libri validi :P
Altrimenti perchè venderli :-))) ?
P.
-- 
   	 ___      ___  __       ___       ___ ___  ___
	/__/ /	 /__/ /   //_/ /__  /__/ /__ /__  /__/
       /__/ /__ /  / /__ // / ___/ /  / /__ /__  /
 
 
http://theunixplace.com/~entropia/index.html
 
Obviously welcome removing Anti-spam filters to contact me in email :-)
Newsgroup: it.comp.lang.c
Titolo: contatore di clock e benchmarking

Ho un problema, devo calcolare il costo computazionale di una certa
sezione del mio programma scitto in C(C++), e vorrei calcolarlo in cicli
di clock o in secondi.
Ho provato con la funzione difftime ma mi fornisce un valore zero, il mio
Pc č troppo potente e quindi approssima a 0. Quindi la cosa utile č
calcolare i cicli di clock.
Potete suggerirmi qualche funzione in particolare?
Non conoscete qualche libreria di benchmark?
Io uso il compilatore di Devcpp 4.1.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Io uso il compilatore di Devcpp 4.1.
Magari se usi clock() invece di difftime e' meglio. Tuttavia anche clock
spesso non basta e bisogna affidarsi a funzioni non C standard. Ad esempio
windows offre high-precision timers e multimedia timers. La trattazione di
questo su questo NG e' OT.
Il modo migliore sarebbe probabilmente invece quello di utilizzare un
profiler.
Tommy

 Io uso il compilatore di Devcpp 4.1.
Se hai un Pentium o superiori, esiste un'istruzione assembler che
si chiama RDTSC (ReadTimeStampCounter), la quale restituisce in
DX:AX il valore di tale timestamp, che viene incrementato a ogni
colpo di clock o giu' di li' .. penso che al di sotto di tale
precisione non puoi scendere .. potresti solo overcloccare :-D

Newsgroup: it.comp.lang.c
Titolo: Output Colorato

salve a tutti..mi chidevo: lavorando col C su Windows, in che modo
posso mostrare un output su consolle colorato?
Grazie e buon anno a tutti!

 posso mostrare un output su consolle colorato?
In C standard non c'e' alcun metodo, come d'altronde sembri aver notato 
anche tu dal modo in cui poni la domanda, ma proprio per questo fatto 
sei OT su questo ng. Chiedi su it.comp.programmare.win32.
Come hint ti posso dire di dare un'occhiata alle sequenze di escape 
ansi, o a librerie come le conio
-- 
Mat/tia Belletti - Graduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://mbellett.web.cs.unibo.it/
Jabber: RedGlow  - Linux registered user 299762 @ machine 213003


Avevo sentito che cambiando i valori binari si potevano ottenere i 
colori.... ma non ti so dire di piu'. Ciao
Newsgroup: it.comp.lang.c
Titolo: Passaggio di parametri per indirizzo

 File: somma.c
# include <stdio.h>
void somma(int *x);
int main()
{
 int *a;
 a=0;
 somma(*a);
 printf("Ris=%d",a);
}
void somma(int *x)
{
 x+3;
}
quando compilo (con gccr o gcc) questo file la risposta del compilatore č:
passing arg 1 makes pointer from integer whitout a cast;
per favore aiutatemi, la mia e-mail č 
red....@tiscalinet.it

 }
Ci sono diversi errori concettuali:
1. tu dichiari un puntatore ad intero che chiami a e poi gli assegni un
valore intero. Ma un puntatore č una variablie contenente un indirizzo, per
cui dicendo a=0 tu gli assegni l'indirizzo di memoria 0. E questo non č
sicuramente quelllo che vuoi. Dichiara a come variabile int, cosě:
int a=0;
2. se vuoi passare l'indirizzo di una variabile ad una funzione, devi usare
l'operatore & (address of) e non quelllo di dereferenza, per cui la chiamata
corretta della funzione somma č:
somma(&a);
3. la funzione somma, cosě com'č definita, fa tutto tranne che aggiungere 3
al valore che le viene dato. Se č questo ciň che vuoi ottenere devi fare:
void somma(int *x)
{
*x=*x+3;
}
x infatti contiene un indirizzo e per modificare il valore contenuto in
quell'indirizzo devi usare la dereferenza.
Suggerisco un ripasso dell'argomento puntatori
ciao ciao
Marco
--
Marco Coppo
University Of Sheffield
FAQ di it.comp.lang.c:
http://www.programmazione.it/linguaggi/c/itcomplangc.htm

Al di là delle correzioni che ti ha già fatto Marco Coppo, dall'oggetto del
tuo messaggio mi pare di capire che forse non ti è chiara una cosa:
In C non esiste il passaggio per indirizzo, solo quello per valore.
Quindi puoi solo passare per valore, il contenuto di un puntatore o il
valore dell'indirizzo di una variabile
--
________________________________
per rispondermi iliasba(at)
tin.it
bye Brain

#include <stdio.h>
void somma( int *x ) ;
int main()
{
    int a = 0 ;
    somma( &a ) ;
    printf( "ris = %d", a ) ;
    return 0 ;
}
void somma(int *x)
{
     *x = *x + 3 ; /* oppure *x += 3 */
}



grazie

Newsgroup: it.comp.lang.c
Titolo: help trckyc

giorni fa ho fatto il download di questo file che é un tutor dello C  .
Ora vorrei rifare tale download ma non ricordo il sito da cui l'ho preso.
C'é qualcuno che lo sa ?


Lo trovi anche qui:
www.dma.unifi.it/trickyc
-- 
Per rispondere togliere NONSCASSA da reply-to.

Li puoi trovare (anche) sul mio sito 
http://syscalo.cjb.net

 wrote in message
slrn82fai3....@obi1.deicide...

GRAZIE


Sul sito 
http://www.aspide.it/trickyc


Una dritta: NONSCASSA scritto in maiuscolo è completamente inutile ai fini
dell'antispam...
... i rompiballe si evolvono e con loro pure i software ;-)
.Kalymero
Newsgroup: it.comp.lang.c
Titolo: Numero variabile di parametri

Ciao,
volevo fare una funzione che prende in input un numero variabile di
parametri; questa funzione dovrebbe anche poter rigirare tutti questi
parametri ad un'altra funzione simile.
Faccio un esempio chiarificatore (spero):
void myprint(char * format, ...) {
...
    printf(format, ...)
...
}
myprint("%s %d","grazie",1000);
Non riesco a trovare se c'e' un modo per fare quella chiamata chiamata li'
alla printf().
Ho trovato info sulla <stdarg.h> ma mi pare di aver capito che non fa al
caso mio.
Grazie x qualsiasi aiuto.
Ema

 Giovanni
Azz! Bastava che scendessi di qualche riga nella lettura di "man printf"...
Grazie x il suggerimento prezioso.
Ema
Newsgroup: it.comp.lang.c
Titolo: Visite in un albero.

Salve Gente :)
avrei dei dubbi  sulle visite negli alberi : in order,preorder e postorder.
(Il fatto è che io associavo queste visite SOLO agli alberi binari....ma,,)
Ho i due seguenti alberi: (faccio prima i disegni poi alla fine trovate la
mia domanda :-)
Albero T:
                                A
                             /    \
                            /      \
                           B      C
                          / |   \
                         /  |    \
                        D  E   F
                            /  \
                           /    \
                          G    H
Ve lo descrivo in caso il disegno fosse venuto tutto sballato senza
formattazione:
Quello sopra è l'albero T:
A è la radice dell'albero, che ha come figlio sx B e figlio dx C.
C non ha figli.
B ha tre figli (!)---> figlio sx ha D figlio "centrale" E e figlio dx F.
D ed F sono foglie.
E ha figlio sx G e figlio dx H.
G e H sono foglie.
L' albero ordinato T possiamo rappresentarlo anche con un albero binario
....lo indichiamo con B:
Albero B:
                    A
                   /
                  B
                  / \
                 D C
                  \
                   E
                   / \
                  G  F
                   \
                    H
Descrivo anche questo, visto che la formattazione potrebbe esser finita a
p...
L'albero B ha come radice A.
A ha solo figlio sx : il nodo B
B ha come figlio sx D come figlio dx C (C è una foglia)
D ha figlio dx E.
E ha figlio sx G e figlio dx F(f è una foglia)
G ha solo figlio dx H.
H è una foglia.
Domanda:
Teoricamente se visito entrambi gli alberi  in ordine anticipato (quindi "in
preorder" , giusto ?) dovrei avere che la sequenza dei nodi esaminati sia di
T che di B
coincide!?
Vorrei sapere se la giusta sequenza per entrambi gli alberi di una visita in
ordine anticipato sia:
  A,B,D,E,G,H,F,E,
??? Illuminatemi!
____________________________________________________________________________
_______________________________________________
Altro problema che non riesco a risolvere è quello che data la seguenza dei
nodi ricostruire l'albero.Esempio:
"Gli ordini di visita di un albero binario di 9 nodi sono i seguenti:
- A,E,B,F,G,C,D,I,H (-->visita anticipata)
- B,G,C,F,E,H,I,D,A (-->visita differita)
- B,E,G,F,C,A,D,H,I (-->visita simmetrica)
Si ricostruisca l'albero".
Avrò fatto una decina di alberi ma se poi li rivisitavo si avvicinavano alle
seguenze qui esposte, ma mai mi risultavano identiche...dov'e' il trucco??
:(
Grazie chiunque mi aiuti a capire.... mi sono arenato in Algoritmi e
Strutture Dati e a breve c'e' l'esame....misà che non andrò da nessuna
parte! argh....
Shaden
P.s. stavolta il crossposting mi potrebbe salvare quindi mi scuso in
anticipo...ma se non trovo qualcuno che mi leva questo gravissimo dubbio
sono spacciato!
       Thanks!

 parte! argh....
Dai....
Tommy

 [...]
Boh!
Spero di non averti incasinato; eventualmente lascia perdere cio' che ho
scritto.
Ciao,
Ema
Newsgroup: it.comp.lang.c
Titolo: Intera istanza di struttura bitfield.

Salve amici,
Non ho trovato modo di riferirmi a una intera variable del tipo struct
bitfield:
struct prova{
    unsigned int uno : 1;
    unsigned int due: 2;
}ist;
int main(){
    ist.uno = 1; //Posso riferirme ai membri come Lvalue
    ist.due = ist.uno.  // e Rvalue
}
Ma come posso fare a riferirme al intero (Ricordo che un bitfield
alinea per ogni offset di sizeof(int)). Cioè:
ist.uno Si riferisce al uno qua sotto:
0000 0000 0000 0000 0000 0000 0000 0001
Ma se volessi riferirmi al valore di ist.uno, ist.due e il resto degli
zeri? Per evaluare in un if cosi:
if(ist/*Dubito molto questo funzioni*/){/*...*/}
Cioè qualunque uno dell'intero intero (scusate la ridundanza) sia
settato ON attivi lo if statement. Una delle idee che ho avuto e
nominare ogni field e usare l'operatore logico OR (||):
if(ist.uno || ist.due || /*...*/){}
Ma non è sempre il caso che si definisca una struct bitfield con tutti
i membri nominati (se ne possono utilizzare anonimi).

 i membri nominati (se ne possono utilizzare anonimi).
Mi viene in mente:
struct prova{
     unsigned int uno : 1;
     unsigned int due: 2;
}ist;
int _tmain(int argc, _TCHAR* argv[]) // ok e' console di MS VS
{
	ist.uno = 1;
	ist.due = 2;
	unsigned int whole_1st = ((unsigned int*)&ist)[0];
	if (whole_1st) {
		ist.uno = 0; // fai qualcosa qui
	}
	return 0;
}
Chiaramente se la struttura e' piu' lunga/corta di unsigned int dovrai 
adeguarti di conseguenza, ma spero renda l'idea.
Ciao,
gio

oltre alla risposta di -gio- puoi passare attraverso una union
struct bitfield
{
    unsigned int uno:1;
    unsigned int due:1;
    unsigned int tre:1;
};
(ricordati che il numero dopo il duepunti e' la dimensione del campo 
espressa in numero di bit)
struct whole
{
    unsigned int value;
};
ed ecco la union:
union splitvalue
{
    struct bitfield bf;
    struct whole w;
};
poi nel codice:
void main ( void )
{
    union splitvalue sv;
    sv.bf.uno = 1;
    sv.bf.tre = 1;
    printf( "value = %d\n", sv.w.value );
/* oppure */
    sv.w.value = 3;
    printf( "uno = %d\n",sv.bf.uno );
    printf( "due = %d\n",sv.bf.due );
    printf( "tre = %d\n",sv.bf.tre );
} 


Avevo gia pensato a una union ma quell cast con subscripting a 0 mi
sembra elegante. Provero cosi, e vi racconto dopo.

 zeri? Per evaluare in un if cosi:
union {
     unsigned int all;
     struct{
          unsigned int uno:1;
          unsigned int due:1;
     } bits;
} pippo;
ci accedi come:
pippo.bits.uno = 1;
oppure
pippo.all = 42;
Ciao Jack


ah, occhio che sta cosa non e' portabile.
Ciao Jack
Newsgroup: it.comp.lang.c
Titolo: prob. con i puntatori

Cari amici,
scusatei se vi chiedo una cosa così banale ma sapreste spiegari:
la differenza tra l'uso di "&p" oppure "*p" ????
vi prego aiutatemi!!!

la differenza tra l'uso di "&p" oppure "*p" ????
Sono uno l'opposto dell'altro:
"&" e' l'operatore che ti permette di ottenere l'indirizzo di memoria
della variabile (nel tuo caso p).
"*" in quel caso e' l'operatore che ti permette di andare alla
locazione di memoria contenuta in p.
Inoltre si usa nella dichiarazione di variabile per indicare che la
variabile in questione e' di tipo "puntatore a".
-- 
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."

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

Ho appena finito di leggere il libro "programmare in c " di Aitken, casa
editrice Apogeo . Devo dire che mi č piaciuto,
perň adesso vorrei leggere qualcosa di piů complesso che parli  di come
interagire con la porta seriale e la porta parallela.
In italiano .
Voi cosa mi consigliate?
CIAO e GRAZIE.

 Voi cosa mi consigliate?
Credo sia il caso che tu indichi su che piattaforma intendi programmare...
Ph.

 Voi cosa mi consigliate?
se lavori su linux ti consiglio
"advanced linux programming" č inglese ma fatto molto bene
ciao
-- 
By_Baitch
"Live Your Life!" (Ring ain't a jail)
http://utenti.tripod.it/baitch

 wrote in message
at8lpq$2rg$1...@lacerta.tiscalinet.it...

Uso visualc++ e windows98
Newsgroup: it.comp.lang.c
Titolo: Ancora su malloc() e realloc()

Ho ancora qualche dubbio e apro un nuovo thread in merito. 
Scusate ragazzi se persevero ma siete l'unica risorsa che posso
"sfruttare" per venire a capo dei miei dubbi.
Vorrei fare una funzione che modifichi una stringa passata come parametro
e la ritorni tramite un secondo puntantore.
Come al solito non sono in grado di preallocare risorse: devo farlo
dinamicamente.
Mi sono accorto che se non prealloco il puntatore di destinazione, anche
con zero byte, prima di passarlo alla funzione, non funziona nulla.
Ovvero il seguente codice non va:
void formatta(char * da_formattare, char * formattata)
{
 formattata = malloc(strlen(da_formattare)*sizeof(char));
 strcpy(formattata, da_formattare);
 //operazioni di modifica sulla stringa
} 
void main ()
{
 char * res;
 char * test="testo da formattare";
 formatta(test, res);
 printf("%sn", res);
}
mentre il seguente va bene:
 
void formatta(char * da_formattare, char * formattata)
{
 formattata = realloc(formattata, strlen(da_formattare)*sizeof(char));
 strcpy(formattata, da_formattare);
 //operazioni di modifica sulla stringa
} 
void main ()
{
 char * res=malloc(0);
 char * test="testo da formattare";
 formatta(test, res);
 printf("%sn", res);
}
Questo comportamento è normale? 
Sbaglio io nell'approccio al problema ?
Grazie ancora per eventuali chiarimenti.
Mario
ps: ho omesso il controllo sull'allocazione per tenere breve il codice
esemplificativo
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 [...]
No, non va bene per niente. Funziona per caso. Il valore di 'res' finisce
come argomento di 'realloc', quindi è invalidato. Il valore restituito
da 'realloc', come abbiamo detto, non esce dalla funzione. Quindi, il
valore di 'res' non può più essere considerato valido, e il comportamento
del programma è indefinito.
Max

 del programma è indefinito.
E' proprio questo che mi inc...are del C: puoi fare delle cose che in
apparenza funzionano ma che poi possono fare dei disastri mostruosi. 
D'altronde la libertà ha un costo :-)
Mario


   *formattata = malloc(strlen(da_formattare)*sizeof(char));
    *formattata = malloc(strlen(da_formattare) + 1);
Serve anche memoria per il '\0' e sizeof(char) e' sempre 1.
Poi: int main() e non void main()
 formattata = realloc(formattata, strlen(da_formattare)*sizeof(char));
Questo e' pericoloso, perche puoi perdere la memoria quando realloc
torna NULL. Meglio cosi:
 char *new_memory = realloc(formattata, strlen(da_formattare)+1));
 if(new_memory) {
        formattata = new_memory; 
        strcpy(formattata, da_formattare);
 }
Che cosa volevi qui? 
        printf("%sn", res);
un
        printf("%s\n", res); ?
Usi
        puts(res);
cc
Newsgroup: it.comp.lang.c
Titolo: file in programma

devo inserire i dati da 2 files (praticamente due matrici N x M)in un
array per poterli confrontare e per poter fare operazioni come posso
fare?
i due file avranno le medesime dimensioni, devo individuare i punti in
cui si differenziano e calcolare la differenza.

 fare?
Scritto al volo, vedi se va bene ;-)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char *dupstr(const char *s)
{
   char *r=(s?malloc(strlen(s)+1):0);
   if (r)
     strcpy(r, s);
   return r;
}
double *xtrctdbls(const char *s, int M)
{
   int i=0;   
   double *res=malloc(M*sizeof *res);
   char *t=dupstr(s), *tk=t;
 
   while ((tk = strtok(tk, ";"))!=0 && i<M) {
     res[i++] = atof(tk);
     tk=0;
   }     
   free(t);
   return res;
}
int load_matrix(const char *file_name, int N, int M, double ***m)
{
     int res=1;
     FILE *fp = fopen(file_name, "rt");
     if (fp) {
       int i;      
       *m = malloc(N * sizeof **m);
       for (i=0; i<N && res; i++) {
         char s_row[1024]={0}; 
         if ((res = (fgets(s_row, sizeof s_row, fp)!=0))) {
           (*m)[i] = xtrctdbls(s_row, M);
         }
       }
     }
     fclose(fp);
     return res;
}
void write_matrix(int N, int M, double **m)
{
     int i, j;
     printf("\nmatrice:\n");
     for (i=0; i<N; i++) {     
       printf("[");  
       for (j=0; j<M; j++)
         printf("%9.2f;", m[i][j]);     
       printf("]\n");
     }
}
void free_matrix(int N, double **m)
{
    int i;
    for (i=0; i<N; i++)
      free(m[i]); 
    free(m);
}
int main(int argc, char *argv[])
{
    int N, M;
    char s_N[64], s_M[64];
    double **m1, **m2;
 
    printf("inserire righe N   : "); fgets(s_N, sizeof s_N, stdin);
    printf("inserire colonne M : "); fgets(s_M, sizeof s_M, stdin);
 
    N = atoi(s_N);
    M = atoi(s_M);
 
    if (N && M && 
        load_matrix("file1.txt", N, M, &m1) &&
        load_matrix("file2.txt", N, M, &m2)) {
      write_matrix(N, M, m1);                           
      write_matrix(N, M, m2);
      /* le operazioni tra matrici vanno qui... */
      free_matrix(N, m1);
      free_matrix(M, m2);
    }
    else
      printf("\ndimensioni nulle o errore di lettura da file !!\n");
    return 0;
}
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Andrea Laforgia ha scritto:
[...]
p.s.: i file devono contenere dei double separati dal ; (punto e virgola).


grazie mille vedro se questo mi va bene ;)
Newsgroup: it.comp.lang.c
Titolo: Liste

Dove sbaglio????
#include <stdio.h>
#include <string.h>
#include <stdio.h>
#include <assert.h>
#include <malloc.h>
typedef int type;
struct _list
{
    type data;
    struct _list * next;
};
typedef struct _list * lista;
void inizializza(lista ptrls, type n);
void aggiungi(lista ptrls, type n);
void cancell(lista ptrls);
void inizializza(lista ptrls, type n)
{
    assert(ptrls != NULL);
    ptrls->data = n;
    ptrls->next = NULL;
}
void aggiungi(lista ptrls, type n)
{
    assert(ptrls != NULL);
    lista aux = malloc(sizeof(struct _list));
    // new list
    aux->data = n;
    aux->next = NULL;
    // --------
    ptrls->next = aux;
}
void cancell(lista ptrls)
{
    lista aux;
    while (ptrls != NULL)
    {
        aux = ptrls;
        ptrls = ptrls->next;
        free(aux);
    }
}
//main.cpp
#include "list.h"
int main( )
{
    lista l;
    inizializza(l, 9);
    aggiungi(l, 7);
    aggiungi(l, 5);
    aggiungi(l, 8);
    while(l->next != NULL)
    {
        printf("%d \n", l->data);
        l = l->next;
    }
    // cancell(l);
    system( "PAUSE" );
    return 0;
}
Tnk

l'errore è che al primo dato ( l ) non allochi spazio da nessuna parte..
tra le altre cose ci sono anche alcuni errorini di sintassi in C.. ma
probabilmente compili in c++ e non te li segnala..
in particolare mi riferisco a questa cosa qui..
non mi pare il C ti permetta di allocare una variabile una volta iniziata
l'eseguizone di una funzione..
void aggiungi(lista ptrls, type n)
{
    assert(ptrls != NULL);
    lista aux = malloc(sizeof(struct _list));   /* meglio allocare prima di
assert */
    // new list
    aux->data = n;
    aux->next = NULL;
    // --------
    ptrls->next = aux;
}
tra l'altor è un brutto stile di programmazione dichiarare tutto come
void... fai restituire uqalcosa di utile alle tue funzioni (tipo l'indirizzo
di memoria che hanno allocato o un codice per verificare eventuali errori)
ciao!
Fra

Newsgroup: it.comp.lang.c
Titolo: lettura file con record a lungh. variabile

Ho un problema che non riesco a risolvere in maniera soddisfacente: spero
che il gruppo possa darmi una mano.
Devo leggere un file di testo che rappresenta un archivio contenente records
a lunghezza variabile. I caratteri di fine record sono 0D 0A.
Il file ha una struttura del tipo:
PARTE1 DATI1
............ .........
PARTEn DATIn
dove
1) PARTE(1-n) e' il nome del record;
2) DATI(1-n) e' il contenuto del record;
3) PARTE(1-n) e' separato da DATI(1-n) da uno spazio( caratt. 32 dec.).
DATI(1-n) contiene ad esempio la posizione di un determinato file:
concatenando ad esempio DATI1 al nome di un file, ho la possibilita' di
accedervi ed elaborarlo...
Per tale algoritmo devo utilizzare unicamente l' ansi C.
Spero in un vostro aiuto.
Grazie e Saluti.

?? Non ho tempo... ma conosco questo genere di problema

Newsgroup: it.comp.lang.c
Titolo: Il 2000 e la mktime()

Salve,
	ho un dubbio riguardo alla funzione mktime(). Essa infatti 
accetta come parametro una struct tm. La componente
tm_year della struttura sembra accettare (almeno, sotto Linux,
non ho provato su altri sistemi) solo interi di 2 cifre ("99", e non
"1999") qesto ovviamente taglia via la compatibilita' con l'anno 2000.
Esiste una soluzione al problema, senza dover ricorrere a strutture
per memorizzare le date 'fatte in casa'? :)
Grazie a tutti,
                    __
         Fabio   " '- nowDruid "  Franchello
                  ---'---------
      Email :  casa: 
snow...@isiline.it
             scuola: 
dr...@edu.al.unipmn.it
      Web : 
http://www.al.unipmn.it/~druid

 `The Krazy One'  ::--------
->  "To reign is worth ambition, though in hell."   |  UIN: 21267457  <-
-<  "Better to Reign in Hell Than Serve in Heaven"  | ircnet: krazy98 >-
---** AIBOHPHOBIA - the fear of palindromes. **---

 "1999") qesto ovviamente taglia via la compatibilita' con l'anno 2000.
A me risulta che il campo tm_year sia di tipo int e quindi sia benissimo
in grado di contenere numeri a quattro cifre.
EMG


Si, e' un int, ma se gli si assegna "1990", per esempio, la mktime()
ritorna -1. Come giustamente e' stato risposto qui sul NG, tm_year
e' il numero di anni dal 1900, quindi 99 per 1999. Una mia svista. :)
Grazie cmq a tutti.


 e' il numero di anni dal 1900, quindi 99 per 1999. Una mia svista. :)
Vero. Ho sbagliato.
EMG

 l'anno 2000.
  No, il campo 'tm_year' rappresenta il numero di anni contati dal 1970.
	Alla prossima,
		Marco

   No, il campo 'tm_year' rappresenta il numero di anni contati dal 1970.
Dal **1900** (K&R2, p. 255), come gia' detto da molti.  ISO/ANSI 7.12.1 .
-- 
Maurizio Loreti                      
http://wwwcdf.pd.infn.it/~loreti/mlo.html
Un. of Padova, Dept. of Physics - Padova, Italy          
lor...@padova.infn.it
Newsgroup: it.comp.lang.c
Titolo: terminare i processi

Rieccomi qui con un altro problemino.
Da un processo padre come posso terminare i processi figlio conoscendone il
pid? Mi sembra di aver letto di una funzione kill(...), secondo voi è il
modo migliore di procedere o c'è qualcosa di + elegante?
Grazie
Fabrizio

 modo migliore di procedere o c'? qualcosa di + elegante?
Puoi usare signal che e` standard. Tieni conto del fatto che la gestione
dei segnali  e` asincrona, potrebbe darti  qualche grattacapo.  Esistono
altri metodi (tipo variabili condizionali)  ma non sono standard, dovrai
chiedere sul newsgroup giusto.
Luca
-- 
Home: 
http://kronoz.cjb.net
La vasca da bagno fu inventata nel 1850, il telefono nel 1875.
Se fossi vissuto nel 1850, avrei potuto restare in vasca per 25 anni
senza sentir squillare il telefono

 chiedere sul newsgroup giusto.
Neanche 'signal' e' standard. Ovvero, e' standard POSIX, che non e' 
pero' lo standard di cui si parla in questo newsgroup ;).
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */

 Puoi usare signal che e` standard. Tieni conto del fatto che la gestione
Beh non è standard C, però praticamente ogni compilatore, BorlandC++ 3.1 in
su,VC++ ecc.., hanno una implementazione di questa libreria. quindi...
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Neanche 'signal' e' standard. 
ISO/IEC 9899:1999 (E) (©)ISO/IEC 
7.14.1 Specify signal handling 
7.14.1.1 The signal function 
1 Synopsis 
        #include <signal.h>
        void (*signal(int sig, void (*func)(int)))(int);
2 Description
The signal  function chooses one of  three ways in which  receipt of the
signal number sig is to be subsequently handled. If the value of func is
SIG_DFL, default  handling for that  signal will occur. If the  value of
func is SIG_IGN, the signal will be ignored. Otherwise, func shall point
to a  function to be  called when  that signal occurs. An  invocation of
such a  function because of  a signal,  or (recursively) of  any further
functions  called  by  that  invocation (other  than  functions  in  the
standard library), is called a signal handler.
LUca
-- 
Home: 
http://kronoz.cjb.net
"In linea di principio sarei indifferente al natale, se solo il natale
 ricambiasse la cortesia e mi lasciasse in pace." -- Marco d'Itri

 LUca
/me ritira quel che ha detto


Newsgroup: it.comp.lang.c
Titolo: c'e' un piccolo compilatore?

salve a tutti mi servirebbe un piccolo compilaore C che stia su un
dischetto, per windows, esiste?
o perlomeno il file da cui installarlo dovrebbe stare in un dischetto o
al massimo due.
oppure qualcosa tipo mulinux,con il dischetto che contiene gcc???
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 oppure qualcosa tipo mulinux,con il dischetto che contiene gcc???
credo che il piu' piccolo e attuale sia lcc, l'exe autoistallante e' 
2,9 mb poi se vuoi help, manuale etc si sale....
Newsgroup: it.comp.lang.c
Titolo: libro sul c

ciao a tuti ragazzi.
ho sempre studiato da autodidatta, dopo le scuole intendo....
ora mi sono deciso di acquistare un libro sul c per approfondire alcune 
questioni sul linguaggio.
premetto che cerco un libro che vada ad analizzare le cose nello specifico,
non testi banali.
ho trovato questi due:
http://www.ita-bol.com/bol/main.jsp?action=bolscheda&ean=978885032254
http://www.ita-bol.com/bol/main.jsp?action=bolscheda&ean=978887192200
quale mi consigliate ?
se avete altri titoli da consigliarmi, vi ringrazio.
ciao a  tutti

ciao a  tutti
Se devi approfondire meglio il Kernighan, l'altro č di tipo
introduttivo e va bene per chi non sa nulla di programmazione :) (se
questo č il tuo caso allora prendi il Deitel).
Prendi in considerazione anche "C Didattica e Programmazione" ed un
ottimo libro su algoritmi e strutture dati :)
Bye bye

 quale mi consigliate ?
Sono due ottimi titoli. Io pero' in questo momento trovo preferibile a 
tutti e due Kelley&Pohl:
http://www.ita-bol.com/bol/main.jsp?action=bolscheda&ean=978887192219
Giorgio

Ma tu gia conosci il linguaggio? piu che comprare un libro che ti rispiega
il C partendo dalla dichiarazione delle variabili potresti cercare qualcosa
legato piu all'implementazione di strutture dati avanzate, adt, ...
Questo ad esempio
http://www.ita-bol.com/bol/main.jsp?action=bolscheda&ean=978887192151
Oppure potresti cercare qualcosa come Advanced Programming in the UNIX
Enviroment
http://www.amazon.co.uk/exec/obidos/ASIN/0201563177/
Probabilmente ne esiste anche una versione italiana.
O sempre dello stesso autore TCP/IP Illustrated: The Implementation vol 2
http://www.amazon.co.uk/exec/obidos/ASIN/020163354X/
Insomma... con un altro libro sulle basi del C nn impari nulla di specifico,
bisogna che ti orienti tu verso qualcosa di particolare :)


grazie mille proprio quello che mi serviva.....
tnx!
Buone feste.

Newsgroup: it.comp.lang.c
Titolo: Logaritmo in base 2?

Ciao a tutti!
Esiste per caso in C una funzione predefinita che calcola il logaritmo in
base 2 di un dato numero? Ho visto che in math.h ci sono quella con il
logaritmo naturale e quella con il logaritmo decimale... ma a me servirebbe
base 2.
Ringrazio fin da ora chiunque potrà darmi suggerimenti e/o indicazioni.
Rocky3
-- 
"Il sapere e la ragione parlano, l'ignoranza ed il torto urlano".
Arturo Graf / Indro Montanelli / Anonimo

logaritmo naturale e quella con il logaritmo decimale... 
C'è anche log2().
In ogni caso considera che il logaritmo in qualunque base b è
calcolabile a partire dal logaritmo naturale.
Se consideri che k = e^x = b^y
applicando il logaritmo naturale hai:
ln(e^x) = ln(b^y)
e per le proprietà dei logaritmi:
x * ln(e) = y * ln(b)
siccome ln(e)=1 
hai
x = y * ln(b)
tornando a k hai che x = ln(k) quindi:
ln(k) = y * ln(b) e quindi
y = ln(k)/ln(b)

 calcolabile a partire dal logaritmo naturale.
Giusto, perň se potevo fare il passaggio diretto era tutto piů semplice,
per cui... meglio log2.
Grazie infinite!

Newsgroup: it.comp.lang.c
Titolo: problemi sui puntatori a funzione e sulla dichiarazione

Vorrei dichiarare un array di puntatori a funzione.
Le funzioni dovrebbero essere di tipo:
void funz1( );
void funz2( );
void funz3( );
void funz4( );
void funz5( );
void  *pf_funzione[5];
*pf_funzi1[0] = funz1;
*pf_funzi2[1] = funz2;
*pf_funzi3[2] = funz3;
*pf_funzi4[3] = funz4;
*pf_funzi5[4] = funz5;
la chiamata dovrebbe essere? e qui non la mia convinzione gia'
traballante cede:
(pf_funz[0]) () ; 	/* questa "potrebbe" essere la chiamata a
funzione?	*/
oppure
(*pf_funz[0]) ( );  /* il problema mi sorge perche' riguardo ai
vettorei  legato ad una situazione di
		   cui mi hanno accennato ma che mi ha un po'
allertato	*/
mi domando se non sia cosi'...
(*(pf_funz[0])) (); 
 
io sarei propenso per la seconda ipotesi..(la terza a dire il vero mi
sembra + corretta) .ma mi hanno spiegato che:
se int a[5] e' un array , se int *b;
posso fare:
	 b = a; 
pero' mi hanno detto che posso anche fare :
b[0] = 100; 
inizializzando il valore del primo elemento   a[0]
per me qui manca la simmetria, io pensavo che avrei 
dovuto fare *b[0] = 100; ma mi hanno spiegato che non e' 
cosi' per una questione legata alle precedenze (se ho capito bene)
se non fosse un array avrei dovuto fare
*b = 100, perche b = 100 avrebbe incasinato l'indirizzo del valore e
non inizializzato il valore.
Un altro dubbio..
struct a {.......,...,..,..,..} p; 
Io posso associare p con l'indirizzo di un'altra struttura,
&p = &altrastruttura;
 (dove &altrastruttura = malloc (sizeof(altrastruttura) * 1000))
ma se &p e' ora l'indirizzo iniziale di un'are di memoria allocata
dinamicamente 
&p++;  mi permette di muovermi nell'area di memoria allocata?
oppure devo fare:
(&p)++?
Per favore correggetemi e fatemi capire dove sbaglio.
ciao e grazie 
enrico

(&p)++?
No.
-- 
Andrea Laforgia (
walkie...@libero.it
)
"Usenet is a strange place" [Dennis Ritchie]

 (&p)++?
Non  sono  validi. Il  risultato  di  & non  e`  un  r-value,  non  puoi
incrementarlo. Diciamo che e` read-only.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
"Su cio` di cui non si puo` parlare e` bene tacere".
 Ludwig Wittgenstein

Non  sono  validi. Il  risultato  di  & non  e`  un  r-value, 
Preciso che *sono* r-value, non sono l-value.


 Preciso che *sono* r-value, non sono l-value.
Ehm, ho fatto un  po' di confusione tra destra e  sinistra ;) grazie per
la correzione.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
La somma dell'intelligenza sulla terra e` una costante.
La popolazione e` in aumento.
Newsgroup: it.comp.lang.c
Titolo: djgpp

Ho installato il djgpp insieme al rhide.
Ho provato a compilare un semplice programma e il tutto va a buon fine ma ho
due piccoli problemi:
1)In ambiente rhide i tasti non corrispondono alla configurazione italiana
2)Ho scaricato allegro. Dove lo dezippo e soprattutto come mai non funziona
il makefile?
grazie a chi mi risponderà

e soprattutto come mai non funziona il makefile?
Forse dipende dalla versione del 'make' che stai utilizzando che non é
adatta.
Il Ghenio
-----
Proteggeremo il mondo della devastazione!
Uniremo tutti i popoli nella nostra nazione!
Denunceremo i mali della verità e dell'amore,
Estenderemo il nostro potere fino alle stelle.
Jesse!
James!
Team Rocket pronto a partire alla velocità della luce.
Arrendetevi subito oppure preparatevi a combattere.
Miaaaoooo, proprio cosi'!
(Team Rocket)
-----

Newsgroup: it.comp.lang.c
Titolo: puntatore a file

Ciao a tutti.
Ho un problema con i file: vorrei dichiararmi un array di puntatori a
file per poter utilizzare più file conteporaneamente. La dimensione
dell'array, però, deve essere decisa a run time. Ammettendo che il
numero di file da aprire sia contenuto nella variabile "numeroFile" nel
mio codice ho scritto una cosa di questo tipo:
FILE **fp;
............
*fp = (FILE *)malloc(sizeof(FILE) * numeroFile);
Questa istruzione, però mi dà un errore a run time di Access Violation
(segmentation fault sotto Linux).
La mia idea è quella di poter utilizzare l'array di file in questa
maniera:
fp[0] = fopen("primo.txt","r");
fp[1] = fopen("secondo.txt","r");
ect......
Qualcuno sa aiutarmi?
Ciao e grazie
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Roberto ha scritto:

FILE **fp;
fp = (FILE **)malloc(sizeof(FILE *)*numeroFile) ;
int i;
for(i=0 ; i<numeroFile; i++) fp[i] = (FILE *)malloc(sizeof(FILE *));
fp[0] = fopen ....
fp[1] = fopen ....
...
...
...
fp[numeroFile-1] = fopen ....

 *fp = (FILE *)malloc(sizeof(FILE) * numeroFile);
fp = malloc(sizeof(FILE *) * numeroFile);
e il cast e' inutile.
ciao,
v.

Alberto ha scritto:

Ehm.....
scusami ovviamente la linea col for non ci vuole, la fopen ritorna un 
puntatore a FILE

"vanvera" <vanve...@CUTgmail.com> wrote in message
Ok. Funziona! Grazie a tutti e due! :-)
Ciao


ciao,
ricorda che trovi in stdio.h: FOPEN_MAX.
Saluti.

Newsgroup: it.comp.lang.c
Titolo: Problema. Chi mi aiuta? Tnx

Ciao a tutti!!!
Ho un piccolo problema.
Non riesco a capire come mai, mettendo il seguente codice, il testo da
visualizzare appare sullo schermo soltanto dopo aver premuto un tasto.
 cout << "Metto il testo che dovrebbe comparire";
 cout << "e poi, Premere un tasto per continuare";
 getch();
A questo punto pero' il testo non viene visualizza finché non viene premuto
un tasto!!! Come mai? Il codice è messo prima.
Sto utilizzando Visual C++ della Microsoft, versione 6.0
Grazie in anticipo per l'aiuto.
Ciao ciao :-)
estr...@libero.it
estr...@tiscalinet.it
http://web.tiscalinet.it/tempo_libero/index.html

 in anticipo per l'aiuto.
	news:it.comp.lang.c++
	Alla prossima,
		Marco

 
http://web.tiscalinet.it/tempo_libero/index.html
Aggiungi  << "\n" alla fine delle due righe di stampa.
HTH
gfb
Newsgroup: it.comp.lang.c
Titolo: strano warning

Ciao a tutti,
vi propongo un warning che non riesco a capire, presentatomi dal mio
compilatore TM V.3.20A (compilatore per processori Motorola)
[Warning(ccom):PROTO.C,line 1270] this comparison is always true
   ===>                                 if ((pos>=0) && (val>=0) &&
(val<=0x7F)) {
ecco le definizioni:
int i, j=0, pos;
char val, tmp[100];
short crx, chk=True;
E' lui che sbaglia o sono io che sono fuso???
grazie a tutti
g4b0


IMO potrebbe essere colpa di val che e` dichiarato come char ed il 
confronto viene fatto con costanti promosse ad interi.
Naturalmente e` solo un warning
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

 Naturalmente e` solo un warning
Neanche castando a (char) si risolve... boh?
g4b0


Ho provato con il gcc e da` questo warning:
x.c:8: warning: comparison is always true due to limited range of data 
type
Definendo val come 'int' il warning sparisce come pensavo.


 (val>=0) && (val<=0x7F)
Sia che char sia signed che unsigned uno dei due confronti è sempre 
verificato.
E.


Sì, ma && richiede che lo siano entrambi per essere vera la
condizione.
--
Saludos
Adriano

 condizione.
Si, ma il warning avvisa che c'č un'espressione (una parte) che č sempre
vera.
Anche il compilatore che uso io avvisa in casi come questo.

 Anche il compilatore che uso io avvisa in casi come questo.
Lo credo, ma stavo solo rispondendo all'affermazione sopra, non alla
domanda originale.
--
Saludos
Adriano

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

Su UNIX lancio un make (tutto sembra corretto) e mi appare:
make: Fatal error in reader: Makefile, line 3: Unexpected end of line
seen
Cosa e' successo????
grazie
Ciao
Scola

...

Non ho sotto mano un make adesso. Prova pero' a ricontrollare il makefile e
vedi se per caso c'e' qualcosa del genere alla linea 3
xxxxx: yyy zzz
<tab>bla bla
dove con tab ho indicato il carattere di tabulazione.
Ciao Mei

 <tab>bla bla
Scusate, era l'errore piu' stupido: avevo dimenticato il <tab>
Grazie a tutti
Ciao
Scola
Newsgroup: it.comp.lang.c
Titolo: accesso alla porta di rete

Cerco una funzione o una parte di codice o indicazioni di qualunque tipo
(purchč compilabili in C o C++), che mi consentano di accedere alla
porta di rete e che mi facciano controllare il traffico (in Byte o bit)
che transita attraverso di essa. Vorrei inoltre sapere come č possibile
far eseguire un programma su una macchina in rete, lanciandolo da
un'altra macchina ad essa collegata. Spero di essere stato chiaro.
Grazie a chi mi risponderą.

 un'altra macchina ad essa collegata. Spero di essere stato chiaro.
   Cerca su Internet RPC o telnet.
   Entrambi gli argomenti sono OT
-- 
Alla prossima,
Marco

pil...@excite.it
:

A te serve qualcosa che sniffi il traffico di rete. Ti consiglio di
spostarti su un NG specifico per il sistema operativo sotto cui
sviluppi.
Comunque prova a usare queste librerie:
http://www.monkey.org/~dugsong/dsniff/
-- 
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."
Newsgroup: it.comp.lang.c
Titolo: Algoritmi e strutture dati.

In rete si trovano molti manuali e tutorial per l'apprendimento del C, che
sono però sempre per insegnare la sintassi del linguaggio a partire da zero.
Qualcuno sa indicarmi se si trovano tutorial o guide sulla progettazione di
strutture dati e algoritmi in C, che danno quindi già per scontata la
conoscenza del C ?
Grazie.
Luca.

 -- Groucho Marx --

Attenzione!
In questo libro ho riscontrato notevoli bachi.
Uno che ricordo e´ nell´algoritmo per sapere se un punto e´ interno o no ad
un qualsiasi tipo di poligono convesso o concavo.
Funzionava per la maggior parte dei casi, ma per alcuni tipi di poligoni
concavi sbagliava clamorosamente.
Poi l´algoritmo giusto l´ho trovato altrove per fortuna.
Salutoni
Mauro

Scusate l'intromissione,
a me servirebbe qualcosa di analogo per costruire un
motore di rendering tridimensionale. La base di calcolo è
già perfettamente funzionante. Manca, però, tutta la
parte che consente la realizzazione delle figure. Pensavo
di trovare qualcosa di buono sui miei libri di matematica
e di calcolo (matematica applicata) dell'anno scorso, ma
ho fatto un buco nell'acqua.
Sapreste indicarmi qualche testo che mi aiuti nella
realizzazione di questi algoritmi con un livello di
matematica non troppo superiore a quella che si può fare
in un istituto tecnico (max. equazioni differenziali del
secondo ordine)? Mi potreste dare qualche indicazione
di livello matematico su come eseguire il rendering di una
faccia triangolare conoscendo le coordinate schermo dei
vertici?
Premessa: Non devo usare funzioni già fatte dal momento
che dovrò implementare il tutto in un piccolo (!) sistema
con micro-controllore. Inoltre ho bisogno di tecniche che
mi consentano di stabilire come devo applicare le texture
e l'ombreggiatura ad una figura.
Grazie!!! :-)
 _-= deep inside =-_
-                              -
Newsgroup: it.comp.lang.c
Titolo: I/O da stdin e MinGW

Ho un problema con MinGW 3.1.0 e scanf o printf.
Con il codice sottostante se inserisco una stringa contenente spazi la
printf visualizza unicamente la prima parola (insomma fino al primo spazio).
#include<stdio.h>
int main (int argc, char * argv)
{
   char frase [50];
   scanf ("%s", frase);
   printf ("\n%s", frase);
}
Non è un comportamento normale, vero?
ciao.

 
si e' normale. se vuoi tutta la riga usa fgets()

 Non è un comportamento normale, vero?
   Invece è il comportamento "esatto" delle funzioni scanf(), per le 
quali il termine "stringa" (%s) assume il significato di "sequenza di 
caratteri diversi da quelli di spaziatura". Se vuoi leggere una riga 
fino al terminatore, usa fgets(), soluzione migliore, oppure scanf() con 
la stringa di formato "%[^\n]" (e vai a cercare sul manuale cosa significa).
-- 
Alla prossima,
Marco

> la stringa di formato "%[^\n]" (e vai a cercare sul manuale cosa significa).
E' la sintassi delle espressioni regolari, significa di prendere tutti i caratteri 
dall'inizio "^" fino al "\n"
Ciao Max
+-----------------------------------------------------------+
| Secondo alcuni autorevoli testi di tecnica Aeronautica,   |
| il calabrone non può volare, a causa della forma e del    |
| peso del proprio corpo in rapporto alla superficie alare. |
| Ma il calabrone non lo sa e perciò continua a volare.     |
|					     Igor Sikorsky  |
+-----------------------------------------------------------+
Newsgroup: it.comp.lang.c
Titolo: quanti C??

salve a tutti,
scusate la domanda forse banale.
ieri al lavoro ho trovato un libro di quick C che buttavano via e l'ho
preso. ma ora mi chiedo, che differenza c'e' tra quick C (e gia' che ci
siamo anche C#) e il C che studio sul K&R?
grazie,
mirko
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 siamo anche C#) e il C che studio sul K&R?
Da quello che ho letto qui
http://www.cminusminus.org/code.html
con il "C" ha poco a che vedere. Come il C#, che, a quanto mi risulta,
e' parente stretto di Java (del "C" ha solo il nome storpiato).
HTH
C:\>iao Angelo


 mirko
Il C# (C sharpe) č la versione Microsoft di Java (che č stato sviluppato da
Sun)
e non ha niente a che vedere con l'ansi C (java ,C# sono orientati agli
oggetti, il C no).
--------------------------- aLe46's HOME
http://web.rossoalice.it/ale4684
 --------------A volte vorrei vivere
nell'aria e rimanere sospeso senza piů ostacoli
giocare coi mostri delle mie insicurezze
 e trasformarli in canzoni come un miracolo ...
LITFIBA - 1994 -

Newsgroup: it.comp.lang.c
Titolo: C Programmer's Guide to Serial Communication.

Avrei bisogno di sapere se qualcuno conosce questo libro e se ne
esiste la versione italiana?
Grazie.
Michele

Il Thu, 20 May 1999 19:51:56 GMT, 
qp...@iname.com
 ha scritto:

Ciao , approfitto per chiedere se qualcuno sa dove trovare
documentazione in rete e librerie per il controllo delle porte seriali
Ciao e grazie :-)
P.S: Per favore rispondetemi in email
mailto:
mg...@polbox.com

Ciao e grazie :-)
Puoi trovare del materiale al seguente indirizzo:
http://www.senet.com.au/~cpeacock
Ciao.
Michele

Newsgroup: it.comp.lang.c
Titolo: [OT] - Infinite grazie a GianFranco Bozzetti



Bhe, cosa posso dire. Grazie mille. l'algoritmo funziona a meraviglia.
All'università ho chiesto ad alcuni, ma chi mi diceva una cosa chi
un'altra... in pratica nessuno mi sapeva rispondere. Poi invece è
bastato chiedere al ng, ed ho ricevuto una risposta effettiva. Grazie GianFranco.
Per non postare un messaggio del tutto ot ti voglio chiedere solo un chiarimento.
La funzione calloc azzera automaticamente... però io la conoscevo
scritta in un altro modo : a[counter]=(int *)calloc(n,sizeof(int));  
mentre invece tu hai scritto       a[counter]
= calloc(n, sizeof(int)) .... che differenza c'è? Cmq già
mi hai risolto un grandissimo problema, quindi grazie mille e ... ciao.
DaN

                       
N


                       
e


                    
\  M  /


                     
\   /


             
N  e  M   e  S   y


                     
/   \


                    
/  S  \


                       
y


 



Prima dell'approvazione del nuovo standard malloc() e calloc() richiedevano
un cast esplicito in quanto ritornano un void *.
Il nuovo standard richiede che il compilatore lo effettui automaticamente.
(Nel dubbio puoi sempre farlo, ponendo molta attenzione ai possibili errori).
HTH gfb