mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: algebra dei puntatori.. dove?

Salve a tutti,
mi sapreste indicare un link a un tutorial (meglio se in italiano) per 
comprendere _bene_ i puntatori? Sono un newbie, e purtroppo quando c'e' da 
fare qualcosa con i puntatori devo sempre andare a tentativi perche' molte 
mi confondo sempre e spessissimo mi crollano le certezze che avevo! Al 
limite potrebbe andarmi bene pure un libro, ma che non tratti l'argomento in 
maniera sintetica (anche se completa) come il K&R... qualcosa a livello 
quasi scolastico per "duri di testa"!!!
grazie 1000
Dade 

 ha scritto nel messaggio
news:444c...@newsgate.x-privat.org...



[CUT]
senza il D&D non sarei mai riuscito ad imparare il C!!! A me piace molto 
come libro, pero' l'argomento puntatori non e' trattato molto... che ci sia 
forse un secondo volume come per la serie del c++?
ciao e grazie
Dade 

 Dade
Non saprei il libro pero' c' e' poco da dire:
l' algebra dei puntatori si applica a puntatori che puntano a un tipo.
non si applica a puntatori a void quindi. La regola e' che il tipo
puntato deve avere un sizeof(tipo) >= 1 (quindi per quelli a void si
deve usare il cast prima)
a un puntatore tipizzato si possono sommare o sottrarre interi e
l' espressione risultante varra' un puntatore allo stesso tipo
incrementato del sizeof del tipo puntato.
es:
se sul tuo sistema sizeof(int) == 4
int array[10] = {0,1,2,3,4,5,6,7,8,9};
int * pint;
pint = array + 3;
/* ora pint punta al quarto elemento, quello di valore 3 */
pint = &array[3];
/* equivalente */
Il divertente inizia con l' uso del cast:
se hai anche:
char *pchar;
pchar = (char *)(array) + 3; /* in cast e' valutato prima della somma */
/* pchar punta al quarto byte del primo int */
/* attenzione che se questo e' il piu' significativo o */
/* meno significativo dipende solo dal sistema. */
----------
inoltre due puntatori dello stesso tipo possono essere sottratti per
saper quanto distano l' uno dall' altro. (casi strani frazionali non
so cosa possano dare. usare solo su stesso array per sicurazza)
Due puntatori dello stesso tipo si possono mettere in espressione
relazionale di eguaglianza per sapere se puntano allo stesso
elemento del tipo base
if (p1 == p2) /* stesso elemento di tipo base */
Non mi viene in mente altro.
Ciao
Roberto
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Newsgroup: it.comp.lang.c
Titolo: <no subject>





Devo inserire un file .exe all'interno di un 
progetto.
E questo l'ho fatto.
Adesso vorrei associare ad un qualsiasi 
evento(click di un "bottone")
l'esecuzione del programma associato al 
file.
Ho provato sull'MSDN, non ne ho cavato un ragno da un buco.
Thanks 
for all.
									Simone



 wrote :
[...]
| Ho provato sull'MSDN, non ne ho cavato un ragno da un buco.
prova a cercare la f. system(), che e' standard c. per le soluzioni
specifiche MS, qui sei OT, prova su news:it.comp.programmre.win32
Newsgroup: it.comp.lang.c
Titolo: Qualcuno dei presenti è di Milano

Ciao a tutti,
qualcuno dei presenti geni in C è di Milano? A Febbraio dovrei risolvere
qualche problemino in C per un compitino didattco e mi piacerebbe chiedere
un aiutino, ciao ciao


wrote:

ciao..mi sa che siamo in due ;-)
esame di algoritmi..giusto..? :)
ciao
p.s.:
magari ci si becca qui per scambiare qualche opinione

 wrote in message
news:b0uioq$1tle$1...@newsreader1.mclink.it...




Se il "compitino didattico" non e' "scrivere un OS stabile", penso di
poterti dare una mano. Se ti serve una mano, scrivi (ng o e-mail)
Ciao,
Riccardo
-- 
-=Riccardo Galli=-
 _,e.
s~  ``
 ~@.   ideralis Programs
.   ol 
 `**~  
http://www.sideralis.net

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

Ciao, volevo chiedervi.. come mai se tento di redirigere l'output prodotto 
da un programma ad un'altro programma creato da me, tipo il "find" 
dell'altro post, quest'ultimo non lo "catturi" come il proprio input? mi 
spiego..
se voglio cercare la stringa CIAO nel file NUOVOFILE scrivo
find NUOVOFILE "CIAO"
e mi vengono outputtate le righe che contengono il pattern...
ma se scrivo
echo NUOVOFILE CIAO > find
non succede nulla... è normale? come faccio in modo che il programma che ho 
scritto "catturi" l'output e lo trasformi nel suo input?
scusate la poca chiarezza... ma ho bevuto

scritto "catturi" l'output e lo trasformi nel suo input?
Stai confondendo tra cio' che e' l'input di un programma e
cio' che sono invece i parametri di un programma.
Nel primo caso, tu passi dei parametri al programma, nel
secondo, invece, gli passi un input.
--
Andrea Laforgia - walkietalkie(at)
libero.it
http://www.geocities.com/AndreaLaforgia

 secondo, invece, gli passi un input.
.... E come faccio in modo da passare un input a un programma?

 .... E come faccio in modo da passare un input a un programma?
echo blablabla | programma
programma < file
e in programma leggi da stdin.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
La teoria e` quando sappiamo come funzionano le cose ma non funzionano.
La pratica e` quando le cose funzionano ma non sappiamo perche`.
Abbiamo unito la teoria e la pratica: le cose non funzionano piu` e non
sappiamo il perche`.
Newsgroup: it.comp.lang.c
Titolo: Inviare messaggi di broadcast via pipe

Salve a tutti.
Sto facendo un'applicazione server (con accesso remoto via telnet) che ad
ogni connessione faccia un fork. Fin qui nessun problema.
Mi chiedevo se esiste un modo affinch� il padre sia in grado di inviare
messaggi via pipe a tutti i figli contemporaneamente (una sorta di
messaggio di broadcast). Il figlio, dal canto suo, avrebbe uno specifico
thread per la lettura della pipe. 
Chiaramente non so a priori quanti figli il padre avr�: dipende dalle
connessioni effettuate in quel momento.
Qualche idea?
Grazie e ciao.
Mario
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
Se la cosa ï¿œ molto semplice (tipo: sono possibili solo 2 messaggi) 
potresti provare con i segnali: in particolare, "kill(0, segnale)" fa 
qualcosa di simile, ma vedi tu se ï¿œ adatto/adattabile al tuo caso.
Altrimenti, se il messaggio ï¿œ strutturato, serve una pipe per ogni figlio :(

  serve una pipe per ogni figlio :(
Si, era quello che immaginavo
Grazie comunque


Newsgroup: it.comp.lang.c
Titolo: Cerco codice per gestire interi a 64bit

Salve, alcuni compilatori recenti gestiscono in maniera nativa del tipo
__int64 che corrisponde a un intero a 64bit.
Io cerco del codice C per gestire su struttura contigua sufficentemente
capace (es 2 unsigned long) le 4 operazioni fondamentali su un tipo intero a
64bit.


wrote:

E' possibile sfruttare le stesse tecniche usate nell'aritmetica a
precisione multipla, nel caso dei numeri interi.
In pratica bisogna scomporre il numero intero di 64 bit in gruppi piu'
piccoli e tali che i valori in essi contenuti, moltiplicati tra loro,
non siano superiori al massimo valore intero gestibile (in tal caso
unsigned long).
Quindi suppongo che sia ragionevole pensare di scomporre l'intero a 64
bit in 4 unsigned short int (dove per short int intendo un tipo a 16
bit).
typedef struct { 
                  unsigned short int lo_lo ; 
                  unsigned short int lo_hi ;
                  unsigned short int hi_lo ;
                  unsigned short int hi_hi ;
               } int 64 ;
In ogni caso un compilatore come il DJGPP prevede sia l'aritmetica
multipla su floating point che il tipo "long long" a 64 bit.
Andrea Laforgia

 multipla su floating point che il tipo "long long" a 64 bit.
cos'è l'aritmetica multipla?
TobiX



Mi spiego : l'aritmetica su floating point in precisione multipla.
La precisione multipla dei floating point e' l'estensione del normale
grado di precisione.
Si adotta, ad esempio, quando si vuole calcolare il valore di pi greca
con un determinato (molto grande) numero di cifre decimali
significative.
Andrea Laforgia
*************************************************
Cerca sempre di percorrere una strada contromano.
Sara' piu' difficile prenderti alle spalle.
*************************************************

*************************************************
Pero' se sei in macchina sara' piu' facile che ti stampi contro qualcuno
:-DD.
Ciao, Marco.
Newsgroup: it.comp.lang.c
Titolo: Utilizzo di textcolor()

So che textcolor cambia il colore di stringhe stampate con printf, ma non so
come utilizzarla. Avrei Bisogno di un piccolo esempio per stampare una frase
colorata con i relativi commenti.
--------------------------------
Inviato via 
http://usenet.libero.it

colorata con i relativi commenti.
#include <conio.h>	// non e' standard!
void main(void)
{
	textcolor(RED);
	cprintf("Sto scrivendo in bianco!");
}


la lettera c in printf sta per color printf?
cmq grazie per la risposta:-)


Newsgroup: it.comp.lang.c
Titolo: Problemino stupido, ma non troppo con * GetChar *

a) Il mio problema e' questo, utilizzando GetChar leggo l'input da tastiera
solo dopo l'invio (tra l'altro ovviamente va a capo di una riga)
Io vorrei invece intercettare la pressione di ogni singolo tasto e
rispondere di conseguenza, senza dover attendere la pressione di INVIO da
parte dell'utente! ( E magari evitando che la digitazione vada anche in
output sullo schermo)
Che cosa mi suggerite?
b) Un altra cosa che NON riesco a fare e' l'output di un singolo carattere!
Vorrei cioe' stampare un singolo carattere senza dover andare a capo con \n.
Cosa posso usare al posto di printf?
Grazie
PowerEA

 printf?
  Sempre printf(), ricordando, pero`, che questo tipo di funzioni opera
su un buffer e non direttamente sui file. Pertanto, sei tu che devi
comunicare quando vuoi svuotare il buffer; cio` e` possibile in due
casi: o inserisci nel buffer un carattere di "newline" ('\n') oppure
chiami l'apposita funzione fflush().
	Alla prossima,
		Marco

Cosa posso usare al posto di printf?
puoi usare 
putchar( c ) ;
fflush( stdout ) ;
oppure 
printf( "%c", c ) ;
fflush( stdout ) ;
oppure ricorri (come nel caso precedente) ad una funzione di output di
un singolo carattere a basso livello.
Newsgroup: it.comp.lang.c
Titolo: Audio & C/C++

Ciao a tutti.
Esiste qualche sito di riferimento
per imparare a programmare applicazioni audio (plug-in Vst o Dxi)
in c/c++?Mi sto avvicinando solo adesso alla programmazione
in c e non ho le idee chiare.
Grazie in anticipo


Se ti stai avvicinando adesso alla programmazione C allora come pensi di
poter affrontare applicazioni specifiche come quelle audio? Non č meglio
se nei primi mesi ti occupi solo del C standard?
EMG
PS. E' da parecchio che mancavo qui. Ciao a tutti quelli che si
ricordano di me.
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg

ricordano di me.
Ciao EMG ! Bentornato ;-)
-- 
Andrea Laforgia
"640kb of memory should be enough for anyone." -- Bill Gates.


Si, č meglio ed č infatti quello che sto facendo...ma non chiedevo un
consiglio,
solo qualche link.
Comunque vi ringrazio

 Ciao EMG ! Bentornato ;-)
Grazie Andrea! :-)
EMG


 ricordano di me.
Se qualcuno non si ricorda di te... vuol dire che non e' mai venuto da
queste parti :-)
C:\>iao Angelo
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 queste parti :-)
:-)))
EMG


Newsgroup: it.comp.lang.c
Titolo: Problemi col passaggio di ARRAY

SCusate a tutti se la mia domanda sarà banale:
come faccio a far restituire ad una funzione in C standard un array di
interi ?!
Che prototipo devo usare ? Devo usare i puntatori !?
Grazie in anticipo...
CIAO


int x[10];
prototipo
int *nome_funzione (altri parametri ...)
nella funzione 
return x;
-- 
Antonio barbone ......
Outside of a dog, a book is man's best friend.
Inside of a dog, it's too dark to read.
		-- Groucho Marx

 wrote in message
0YC75.8653$2s6.1...@news.infostrada.it...


 CIAO
come dice Hammet, se dichiari una variabile globale (cioe' fuori da
tutte le funzioni,
compresa la main ()) questa variabile e' vista da tutto il sorgente .
ma quando avrai bisogno di fare programmi piu' lunghi,quindi  con piu'
funzioni, ti
conviene usare variabili locali (cioe' dichiarate nella main () o nelle
funzioni
che le usano), quindi ti converra' usare la funzione che ritorna un
puntatore ad int.
int *fz_nome funzione (parametri da passare);
ricordati che il passaggio di dati a e da una funzione conviene farlo
sempre per
indirizzo, cioe' con un puntatore al tipo di dato, dato che il passaggio
per valore non
ti permette di modificare la variabile e ti crea una inutile copia nello
stack della
funzione. 
questo, nel caso di programmi che trattano un notevole numero di dati,
ti appesantisce
in proporzione la memoria ....


                 -- Groucho Marx
SORRY ABOUT


 interi ?!
Se vuoi che venga restituito per valore l'unico modo è di incapsularlo
dentro una struct.
EMG

 di interi ?! Che prototipo devo usare ? Devo usare i puntatori !?
<code>
	int *mkarray(size_t size)
	{
		return malloc(size*sizeof(int));
	}
</code>
	Alla prossima,
		Marco
Newsgroup: it.comp.lang.c
Titolo: Aiuto

Sono alle prime armi col 'C' e dovrei scrivere un programma che
scriva un file con 'fopen' per poi poterlo leggere.
Ho implementao un programma che usa 'fprintf'e 'fscanf' ma sebbene fosse
privo di errori non riesce nč a scrivere, nč a creare il file.
Il codice con 'fopen' č: 
fp = fopen("testo","write");
while(c != '?')
	fprintf(fp,"%c",stdin)
fclose(fp);
 
Qualcuno potrebbe aiutarmi? Ringrazio anticipatamente.

 Qualcuno potrebbe aiutarmi? Ringrazio anticipatamente.
spero di averti aiutato.
ciao.

 Qualcuno potrebbe aiutarmi?
L'errore piů grosso (ma ce ne sono diversi) č quello di aver scritto
fprintf(fp,"%c",stdin)
invece di
fprintf(fp,"%c",getchar())
Inoltre hai fatto riferimento ad una variabile c che non viene mai
utilizzata. Il programma corretto potrebbe essere una cosa simile a
questa:
#include <stdio.h>
int main()
{
    FILE *fp;
    int c;
    if ( ( fp = fopen( "testo", "w" ) ) == NULL )
    {
        printf( "Errore");
        return 1;
    }
    while( ( c = getchar() ) != '?' )
        fprintf( fp, "%c", c );
    fclose(fp);
    return 0;
}
EMG

Newsgroup: it.comp.lang.c
Titolo: gestire le date in C

Salve
volendo gestire le date tipo gg/mm/aaaa, facendo confronti etc...
in C esistono strumenti ad hoc?
thx

BelliCapelli ha scritto:

  strftime();
<time.h>
ciao!
Newsgroup: it.comp.lang.c
Titolo: gestione del mouse in ASM. Dove e' l'errore??

Sto riscrivendo in C una libreria per la gestione del mouse da me realizzata
anni fa in Pascal.
La caratteritica di tale libreria e' che non richiede le funzioni int, int86
e strutture tipo regs fornite dai compilatori Borland. In queto modo
permette di mantenere la compatibilita' con compilatori che non hanno tali
funzioni.
Ho dei problemi con la seguente procedura:
void GetMousePos (int *PosX, int *PosY, int *ButPos){
 asm{
      mov ax, 03H
      int 33H
      mov [PosX], cx
      mov [PosY], dx
      mov [ButPos], bx
    }
*PosX = *PosX / 8;
*PosY = *PosY / 8;
}
che dovrebbe restituire la posizione del mouse e il bottone premuto.
Facendo il degub sembra che le varie mov [Pos...],  vengano interpretate
come valori e non come puntatori!
dov'e' che sbaglio?
grazie mille.

 wrote in message 7c3plq$ajj$3...@hermes.iol.it...

in assembler [PosX] non e' corretto, cosi' l'Effettive Address ottenuto e'
l'indirizzo della variabile PosX + 0, non il valore di PosX + 0.
devi per forza scrivere
mov    si,PosX
mov    [si],cx
ma non e' cosi' semplice, dipende anche dal modello di compilazione:
in COMPACT, LARGE, HUGE
devi scrivere:
les    si,PosX
mov    es:[si],cx
tutti i registri che usi, esclusi quelli generali (AX,BX,CX,DX), li devi
salvaguardare all'ingresso e ripristinare all'uscita della funzione, cosi'
come tutti i registri che vengono sporcati dall'int che stai chiamando (in
questo caso mi pare siano solo quelli generali).
come ti hanno gia' risposto la direttiva asm non e' portabile.
ciao
donCiccio
Newsgroup: it.comp.lang.c
Titolo: problema urgente

poichè il programma che ho creato è un po' lento mi serve che, superato un
certo tempo, mi stampi i risultati trovati fino a quel momento ogni 1 o2
minuti. Mi sapete dire come fare? c'è una qualche funzione che faccia conto
alla rovescia? Per favore aiutatemi xke mi serve una soluzione in fretta: se
nn consegno il progetto nn passo l'esame... :(
Grazie in anticipo.
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Grazie in anticipo.
no. non c'e' nessuna funzione che fa quello che vuoi nel C
standard.
Penso tu possa ottenere qualcosa di simile usando processi o thread
a seconda del tuo sistema operativo o del del tuo compilatore.
Altrimenti, la soluzione piu' semplice e ruspante e immediata da 
programmare se non conosci bene processi e/o thread  e' quella di
includere time.h e usare una variabile globale che ricorda
quando e' stata l'ultima volta che hai stampato un
risultato parziale:
#include<time.h>
time_t lastprint;
poi all'inizio del programma la inizializzi:
con il tempo corrente:
lastprint = time(0);
e poi all'interno del programma, per esempio all'interno
di un ciclo che fai molte volte,
metti un test di questo tipo
if ((time(0)-lastprint)>120)
{
   lastprint=time(0);
   INVOCAZIONE DI FUNZIONE CHE FA LE STAMPE
   DEI DATI RILEVANTI.
}
siccome il valore restituito da time(0) e' il numero dei
secondi trascorsi dal 01/01/1970, facendo la differenza tra
due chiamate di time(0) ottieni il tempo trascorso in secondi.
Ovviamente una chiamata a time(0) po' di tempo lo
spreca.
Quindi se hai un ciclo molto veloce, ma eseguito molte
volte
tipo
for (i=0; i<100000; i++)
for (j=0; j<100000; j++)
{
   A[i]*=B[j]+C[i];
}
non metterail il test dentro il ciclo, ma magari in questo modo:
for (i=0; i<100000; i++)
{
   if ((time(0)-las.....) {...}
   for (j=0; j<100000; j++)
   {
    A[i]*=B[j]+C[i];
   }
}
oppure, sempre se hai un ciclo semplice molto veloce,
che magari ci mette un millesimo di secondo ad eseguire,
non ha senso chiamare time(0) e confrontare con lastprint
ad ogni iterazione: rallenterebbe inutilmente il programma.
Puoi usare una variabile intera che metti inizialmente
uguale ad una costante:
int cicli=1000;
e poi nel ciclo fai cosi:
for (i=0; i<1000000; i++)
{
   if (--cicli==0)
   {
     cicli=1000;
     if ((time(0)-lastprint...) { .... }
   }
   ROBA DEL CICLO
}
in questo modo vai a testare time(0) solo una volta ogni
1000 cicli e risparmi un po' di tempo perche'
il decremento e test della variabile intera e' piu' economico.
ciao,
v.
Newsgroup: it.comp.lang.c
Titolo: "USCIRE" da una SCANF

Ho questo problema: un programma è in attesa di input da una scanf, ma in
occasione dell'arrivo di un segnale vorrei poter uscire, cioè far in modo
che la scanf venga saltata, riportando magari -1 o qualcosa del genere.
Oppure, in alternativa, c'è un modo per dare un valore a una scanf senza
digitarlo da tastiera, in pratica immettendoglielo da un'altra istruzione
precedente? (Quest'ultima richiesta è un po' avveneristica...).
GRAZIE a tutti

 ha scritto nel messaggio
news:0KPh7.51996$TS4.2...@news2.tin.it...


Grazie comunque sei stato gentile. Comunque il problema è questo:
il mio programma aspetta che scriva un numero, su una scanf. Ad un certo
punto un altro processo potrebbe inviarmi un segnale. All'arrivo di questo
segnale io voglio che il mio processo che aspetta il numero, smetta di
aspettarlo, cioè voglio poter uscire dalla scanf, farle riportare -1,
insomma liberarmene. Mi basterebbe anche fare si che la funzione di gestione
del segnale dia un valore alla scanf senza digitarlo da tastiera, e che la
scanf si prenda quel valore e mandi avanti il programma. Quello che mi
succede in realtà invece è questo:
1. programma in attesa sulla scanf
2. arriva il segnale (non so quando, dopo un tempo random, dipende da altri
fattori)
3. parte correttamente la funzione di gestione del segnale
4. all'uscita di detta funzione mi si ripresenta la scanf.
E' proprio il punto 4 che non mi va bene, vorrei che la scanf mi
riportasse -1 come fa per esempio la msgrcv(), che è una chiamata bloccante,
all'arrivo di un qualunque segnale.
GRAZIE
ciao

Forse con setjmp e longjmp
dopo aver settato un signal handler con signal. (per usare
solo funzioni standard ANSI)
Non le uso mai perche' insozzano il codice come le goto,
pero' credo che siano l' unico modo per fare quello che dici
usando lo standard.
env come var globale perche' sia conosciuta sia dal signal handler
che dalla funzione dove c' e' la scanf da schiodare.
void handler(int)
{ longjmp(env,1); }
con:
 if (setjmp(env))
  {
    printf("ricevuto signal!!!\n");
    numerosegnale = signal(vecchiohandler ,handler); /* disinst. */
  }
 else
  {
    vecchiohandler = signal(numerosegnale,handler); /* installa */
    scanf("",....);
    numerosegnale = signal(vecchiohandler ,handler); /* disinst. */
  }
Mai usato questa tecnica quindi il codice riportato e' TUTTO da
esaminare. Vuole essere solo un suggerimento.
ciao
roberto.
Newsgroup: it.comp.lang.c
Titolo: Principiante chiede aiuto

Sono disperato, voi mi potete senz'altro aiutare.
Devo costruire un SW che gestisca una comunicazione su porta seriale in
ambiente DOS.
Uso Visual C++ 1.52 e non so da dove cominciare.
Se qualcuno raccogliesse l'appello:
1) Avete qualche dritta da darmi;
2) Come mai quando utilizzo le funzioni inport, outport, ecc. ottengo un
warning dal compilatore e un errore dal linker perchè non trovano la
libreria che le contiene?
Grazie in anticipo.
Martino Casolari.

 Uso Visual C++ 1.52 e non so da dove cominciare.
Cambia compilatore, č un po *fuori standard* ovvero vecchiotto, scaricati il
Dev c++ 4

Dev c++ 4
se deve scrivere un software per gestire la porta di com .. che
importanza ha se il suo compilatore sia o meno fuori standard ??
cmq ha sbagliato newsgroup .. questo é + importante
Antonio

 wrote in message
97654u8rtgp69k9qh...@4ax.com...

Dove devo andare?
Martino

 Dove devo andare?
it.comp.programmare.win32
E cmq se vuoi un consiglio cambia compilatore, magari in futuro ti
servirą...
Newsgroup: it.comp.lang.c
Titolo: Merge Sort

 GIGA SLAVE!!
ti scrivo l'algoritmo come e' esposto nel libro "algoritmi in C" ...
P.S. ti ricopio la spiegazione testuale perche' sono ancora impantanato
su altri algoritmi 
piu' semplici !!!!!
ipse dixit
Per ordinare un file e' sufficiente dividerlo in due, ordinarne
(ricorsivamente) le due 
meta' e fondere le sequenze ordinate risultanti. La seguente versione di
questo metodo ordina un array a[1] .... a[r] sfruttando un array b[1]
.....b[r] di appoggio ....
mergesort (int a[], int l, int r)
	{
	int i, j, k, m;
	if (r > l)
		{
		m = (r+1) / 2;
		mergesort (a, l, m);
		mergesort (a, m+1, r);
		for (i = m+1; i > l; i--)  b[i-1] = a[i-1];
		for (j = m; j < r; j++)	  b[r+m-j] = a[j+1];
		for (k = l; k <= r; k++)
			a[k] = (b[i] < b[j]) ? b[i++] : b[j--];
		}
	} 	
il programma gestisce la fusione senza l'ausilio di sentinelle copiando
il secondo array
subito dopo il primo, ma in ordine inverso, quindi ciascun array funge
da sentinella per l'altro in quanto l'elemento piu' grande (contenuto in
uno dei due vettori) fa in modo che gli spostamenti susseguenti
all'esaurimento dell'altro vettore vengano effettuati in maniera
corretta .
il seguente programma e' l'implementazione ricorsiva di una funzione che
riceve in ingresso
il puntatore ad una lista non ordinata e restituisce un puntatore alla
stessa lista ordinata. Il programma esegue questa operazione
riorganizzando i nodi dellalista senza dover
allocare nodi o liste temporanee ...
struct node *mergesort (struct node *c)
	{
	struct node *a, *b;
	if (c->next != z)
		{
		a = c; b = c->next->next->next;
		while (b != z)
			{ c= c->next; b = b->next->next;}
		b = c->next;  c->next = z;
		return merge(mergesort (a), mergesort(b));
		}
	return c;
	}
questo programma effettua l'ordinamento spezzando la lista puntata da c
in due sottoliste
puntate da a e b, ordinando ricorsivamente le due nuove strutture e
applicando al risultato di questi ordinamenti la funzione merge per
creare la lista finale ordinata .
Anche in questo caso tutte le liste terminano con un puntatore a z;
infatti, poiche' la lista in ingresso termina con z, la stessa cosa vale
per quella puntata da b; mentre l'istruzione esplicita "c->next = z"
garantisce che lo stesso accada per la lista a.
E questo e' tutto ... spero che sia quello che cercavi .... a te il
compito di capirci
qualcosa ... 
ciao ciao 
Antonio barbone

 GIGA SLAVE!!
vabbe', il principio e' questo, lo potresti adattare alla chiave di
ordinamento che ti serve
scusa per gli errori di trascrizione ....
ciao ciao 
antonio barbone
Newsgroup: it.comp.lang.c
Titolo: \f aiuto

Dalla domanda vrete capito che sono un neofita del c.
Ho letto che con \f fa pulire tutto lo schermo (tipo cls nel basic), ma a me
non succefe niente.
Come mai?.

 ha scritto nel messaggio
news:9tnt1m$81e$6...@nreadb.inwind.it...

'\f' è un formfeed, che in alcuni sistemi corrisponde a quello che dici, ma
il suo non è standard. Quello che chiedi lo puoi fare usando la funzione
system(<stringa>) (contenuta in stlib), che in pratica non fa altro che
richiamare il comando della shell corrispondente alla stringa: ad esempio,
in Dos usa system("cls"), in Unix system("clear").
Ciao,
Cecco

 ha scritto nel messaggio
news:XvLL7.12793$4M2.3...@news2.tin.it...


 in Dos usa system("cls"), in Unix system("clear").
Che differenza c'è tra system("cls") e clrscr() della conio.h?
Quale conviene usare?
--
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
e-mail: 
cerch...@ciaoweb.it
 / 
33813...@tim.it
Bye byte, Cerchietto
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

Quale conviene usare?
allora system("cls") funziona solo su sistemi DOS
clrscr() in teoria funziona su qualsiasi sistema che implementa la
conio.h...
Cmq io ti consiglio di utilizzare la funzione di libreria quando puoi,
penso che l'overhead sia minore.
----
Lawrence "Rhymes" Oluyede
rhy...@myself.com

 conio.h...
La funzione system(const char *s) č una funzione standard, e funziona in
tutti i sistemi. E' la stringa s ad essere implementation dependent.
Ciao,
Cecco

tutti i sistemi. E' la stringa s ad essere implementation dependent.
E mi spieghi cosa ho detto io?
io ho detto che la _istruzione_ system("cls") funziona solo sotto
dos...


 dos...
E' vero, ho solo voluto specificare per evitare fraintendimenti.
Ciao,
Cecco

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

per dichiarare una costante è più corretto usare "#define X 1" oppure "const
int x=1;" cmq non verrei aver frainteso il significato dei due comandi!?
sono sinonimi?
grazie
byez
B@STI

Bastilani wrote:

No. Il primo e` una direttiva al preprocessore che significa 
"sostituisci con la sequenza '1' ogni sequenza 'X' che incontri prima 
che il compilatore esamini il file". Il secondo, invece, e` una 
direttiva al compilatore che significa "metti il valore intero '1' in 
una posizione di memoria denominata 'x' e fai in modo che non sia piu` 
modificabile". Sulla correttezza dell'uno o dell'altro non mi esprimo, 
dipende dal contesto.
-- 
Baci,
Mony

 Mony
thx
Byez
B@STI

 qualsiasi cosa usi x avrà sempre 1...!? no?
Se utilizzati come una semplice assegnazione portano allo stesso risultato
ma nel secondo caso occupi memoria...
Newsgroup: it.comp.lang.c
Titolo: [Banalita'] semplici regole per programmare con stile

Salve, purtroppo mi riconosco nella tipologia di persone che scrivono
programmi disordinati e rattoppati. Vorrei capire meglio come " l'etichetta
" vuole che suddivida un programma in vari file ".c" e ".h" nonche' come i
singoli moduli vengano gestiti attraverso i makefiles (Unix/Linux).
Alcune domande:
- la definizione dei tipi e la dichiarazione delle variabili globali, e'
bene metterla in un header file?
- supponiamo di avere un programma diviso in: "header.h", "main.c",
"subfuncs.c". Come faccio far lavorare le funzioni in "subfuncs.c" con
delle variabili globali?
Non voglio annoiarvi oltre con domande simili, ma vi sarei grato se voleste
indicarmi delle risorse su internet dove apprendere questa tipologia di
argomenti.
Grazie,
Sergio.


The majority of the stupid is invincible and guaranteed for all time.
The terror of their tyranny, however, is alleviated by their lack of
consistency.
                -- Albert Einstein

int pippo;		
Non e' nell'uso comune.
Meglio usare le "extern" da qualsiasi parte lo si richieda.
--
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."

delle variabili globali?
Aggiungendoci una extern per ogni variabile globale.


 Meglio usare le "extern" da qualsiasi parte lo si richieda.
scusami, mi potresti togliere un "dubbio" ? io evito sempre di
dichiarare variabili globali, ma preferisco passarle alle funzioni come
argomento (di solito con i puntatori) .... e' una buona pratica, oppure
ci sono casi in cui e' meglio usare le globali ?
penso che a livello di spreco di memoria, usando i puntatori, non ci
siano problemi, ma volevo sapere se c'e' qualcosa (una delle tante ;-))
che non so ...
ciao e grazie anticipate ..


>Le definizioni di funzione 
Chiaramente volevo dire le dichiarazioni di variabili globali.


ci sono casi in cui e' meglio usare le globali ?
Le variabili globali non andrebbero MAI usate.
Il C tratta i moduli .c come unita' di traduzione distinte ed io ho
sempre dichiarato variabili statiche nei .c e le ho sempre
interfacciate per mezzo di funzioni. E' meglio, a mio avviso, perche'
simula il funzionamento delle classi in C++ e mantiene il codice molto
modulare.


 modulare.
thanks ... Guru ;-)))
ciao ...

Newsgroup: it.comp.lang.c
Titolo: Aiuto per esecuzione programma in c.

Ho scritto il seguente programma compilato e run madurante l'esecuzione si
blocca dandomi i seguente messaggio
Totale Pagato: scanf: floating point formats not linked
il sorgente e' il seguente
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
struct
{
 char nome[21];
 char cognome[21];
 char scala;
 int interno;
 float totale;
  }A[100];
main()
{
     int i,n,
     clrscr();
 printf("Bnevenuti!.\n");
 printf("Programma di gestione Condominio.\n");
 printf("Quanti pagamenti?:\n");
 scanf("%d",&n);
 for(i=0;i<n;i++){
  printf("Nome:");
  scanf(" %[^\n]",A[i].nome);
  printf("Cognome:");
  scanf(" %[^\n]",A[i].cognome);
  printf("Scala:");
  scanf("%c",&A[i].scala);
  printf("Interno n: ");
  scanf("%d",&A[i].interno);
  printf("Totale Pagato: ");
  scanf("%f",&A[i].totale);
  }
 for(i=0;i<n;i++){
 printf("%s ",A[i].nome);
 printf("%s ",A[i].cognome);
 printf("%c",A[i].scala);
 printf("%d ",A[i].interno);
 printf("%f ",A[i].totale);
 printf("\n");
 }
}

A parte l'implementazione,che potrebbe essere fatta un po meglio,
a me funziona abbastanza bene.
Ho compilato con Visual C++ 6.0 e Windows 2000.
Ciao.

Pure a me non da l'errore del quale parli.
Ho usato MS VC++ 6.0 su NT 4.0
Ciao
bp

 il sorgente e' il seguente
A occhio e croce mi sembra un bagghetto dei vecchi borland.
Compilato con borland 2.xx?
Ivan Molella

 wrote in message
393FF164...@tin.it...


Totale Pagato: scanf: floating point formats not linked
E' colpa del compilatore (Turbo C ?) che a volte non s'accorge che
deve linkare anche quella libreria. Per farglielo capire basta
scrivere qualche funzione (anche inutile) dove usi i float.
Il file HELPME!.DOC contenuto nella directory c:\TC\DOC (del Turbo
C++3.0) comunque dice :
Q. I get a "floating point formats not linked" message when I run my
program. What can I do about it?
 
A. Floating point formats (for scanf() and related functions) are not
always linked, for savings in executable size. To force their
inclusion, put the following somewhere in your source files:
 
extern unsigned _floatconvert; 
#pragma extref _floatconvert 
ciao

Totale Pagato: scanf: floating point formats not linked
Devi forzare il link delle librerie matematiche.
E' un problema noto. Consulta le faq di comp.lang.c.
Newsgroup: it.comp.lang.c
Titolo: valore ritornato

Ogni funzione ritorna un valore!
La scanf() ritorna come valore il numero di parametri che ha letto ed
assegnato. La printf() il numero di caratteri stampati a video.
Se scrivo
if (2){
  printf("Ciao ciao");
     }
la printf stamperà a video. Se scrivo:
int casa = 5;
if (casa = casa+5){
  printf("Ciao ciao");
 }
la printf stamperà a video; essendo il valore della condizione quello
dell'assegnazione (che è poi il valore assegnato, cioè casa+5).
Se scrivo:
int casa;
casa = printf("abc");
if (casa){
  printf("Ciao ciao");
 }
la printf stamperà a video.
Mi domando: perchè non funziona:
int casa = 5;
if (printf("abc")){
  printf("Ciao ciao");
 }
??
In fondo
casa = printf("abc");
Cioè: io mi sono accorto di poter usare una assegnazione, ad esempio, come
un normale valore numerico:
num + (var = var + 1)
equivale a :
num + (var +1)
o
num   +  ++var!
Perche non posso usare anche una funzione in luogo del suo valore
restituito??
Grazie

 restituito??
In effetti posso usarla. Ad esempio:
...
int a,b,c;
a = 5;
b = a + (printf("abcd");
printf ("Il valore di b č: %d",b):
...
b ha valore 9, ma printf stampa "abcd".
Ho capito qualcosa??
Grazie

 }
Quel pezzo di codice funziona e stampa "ciao ciao" dopo
aver stampato "abc".
Se il tuo problema e' che non vedi niente usando il debugger,
e' per problemi di buffering.
Esegui il programma dall'interno di una finestra dos.
C:\>iao Angelo
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 b ha valore 9, ma printf stampa "abcd".
E cosa volevi che facesse? Se invochi una
funzione il cui scopo e' quello di stampare,
quella stampa.


 quella stampa.
Va bene, ma non mi aspettavo che "funzionasse" anche in
if (printf("abc")){
    printf("Ciao ciao");
}
cioè quando usata come condizione di if..!
Grazie

 cioè quando usata come condizione di if..!
E infatti dovrebbe funzionare. Dovrebbe stampare:
   abcCiao ciao
Questo perché printf("abc") ritorna 3, che è il numero di caratteri
stampati. E, essendo 3 un valore diverso da 0, all'interno dell'if vale
come "VERO".
Se non stampa quello che ho scritto sopra, c'è qualcosa che non va. Per
esempio, sicuro che la compilazione e il linking siano andati a buon fine?
--
Cingar
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 cioč quando usata come condizione di if..!
Certo che funziona.  Perché non ti procuri un manuale ?


Newsgroup: it.comp.lang.c
Titolo: Capturing C++ OR VC++

salve
BUON 2003 A TUTTI!!!!!
Vorrei creare un programma che catturi e salvi delle bitmap dello schermo
con un refresh di 25 FPS.
Io ho tentato invano vari procedimenti.
Chiedo se qualcuno possa scrivermi un sorgente C++ o MFC del programma in
questione a: 
ssj....@inwind.it
 o rispondendo direttamente a questo
messaggio, vedete un po' voi.
VE NE SAREI MOLTO GRATO!!!!!!
GRAZIE!!!!
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it



 BUON 2003 A TUTTI!!!!!
ma tu hai posato il bichiere con lo spumante PROPRIO
per scrivere questo msg!??!!?
Newsgroup: it.comp.lang.c
Titolo: [C]problema con struttuta di controllo if else

IL codice in C gira sotto Linux 9.2, compilatore gcc.
Si tratta sempre di un client e server connessi tra loro tramite
socket, con protocollo tcp.
qui riporto la parte del server con la struttura if:
[CODE]
char x[1024],y[1024];
  unsigned char z,w;
  char buf[1024];
  char buf2[1024];
  do
    {
      send(ds_sock_acc,"\nInserisci fila :",20,0);
      recv(ds_sock_acc,&x,2,0);
      printf("%s",&x);
      if ((strcmp(x,"A")!=0)||(strcmp(x,"B")!=0)||(strcmp(x,"C")!=0))
            {
                 send(ds_sock_acc,"\nfila inesistente\n",30,0);
             }
       else (strcpy(buf,"fatto"));
     }
    while (strcmp(buf,"fatto")!=0);
[/CODE]
purtroppo nn so perchè questo nn funziona :
if ((strcmp(x,"A")!=0)||(strcmp(x,"B")!=0)||(strcmp(x,"C")!=0))
se inserisco dal client il carattere A o B o C comunque sia il sever
spedisce il messaggio fila inesistente.
modificando cosi' riconosce invece ol carattere A:
if ((strcmp(x,"A")!=0)
{
    send(ds_sock_acc,"\nfila inesistente\n",30,0);
}
ma ovviamente nn mi fa gli altri confronti
se modifico ulteriormente cosi
if ((strcmp(x,"A")!=0)
{
    send(ds_sock_acc,"\nfila inesistente\n",30,0);
}
else if (strcmp(x,"B")!=0)
	        {
		  send(ds_sock_acc,"\nfila inesistente\n",30,0);
		 }
ritorno al problema iniziale qualsiasi carattrere invio da client poi
il server spedisce il messaggio fila inesistente.
nn riesco a capire dove sia la magagna :(



 spedisce il messaggio fila inesistente.
Per forza !
Intanto ricordiamo che strcmp restituisce 0 se le due stringhe sono uguali.
Scusa, ma se la x vale ad esempio "B", allora
strcmp(x,"A")!=0  vale  VERO perche' "A" != "B"
strcmp(x,"B")!=0  vale FALSO perche' "B" == "B"
strcmp(x,"C")!=0  vale VERO  perche' "C" != "B"
quindi ottieni
VERO || FALSO || VERO che ovviamente vale VERO..
e quindi viene stampato il messaggio.
Se vuoi stampare il messaggio solo se X e' diversa
da A, da B e da C, allora devi scrivere
if (strcmp(x,"A")!=0 && strcmp(x,"B")!=0 && strcmp(x,"C")!=0)
{
    // x e' diversa da A, diversa da B, diversa da C
}
o equivalentemente:
if (strcmp(x,"A") && strcmp(x,"B") && strcmp(x,"C"))
siccome questa volta i test sono in AND bisogna
che siano tutti verificati perche' il codice
venga eseguito.
ciao,
g.
Newsgroup: it.comp.lang.c
Titolo: Come scrivere sul boot dei floppy?

E' possibile scrivere nel boot dei floppy?
Qual è la funzione? (sempre se esiste).
E soprattutto dove posso trovare le faq di questo ng?
Grazie tante e
Ciao ciao

E soprattutto dove posso trovare le faq di questo ng?
e io che ne so ;-)


Qual è la funzione? (sempre se esiste).
Dovrebbe funzionare con il vecchio debug del dos andando a scrivere
sul settore 0 ,oppure sicuramente ci riesci con PCTOOLS ......... .

 E' possibile scrivere nel boot dei floppy?
come standard C ovviamente no.
cerca nelle funzioni specifiche del tuo compilatore qualcosa che ti permeta
di scrivere il settore 0 di un disco.
con il BorlandC xDOS "biosdisk" prototipo in <bios.h>
ciao
donCiccio

>E soprattutto dove posso trovare le faq di questo ng?
nell'help in linea del turbo c++ 3 x dos
cod

E soprattutto dove posso trovare le faq di questo ng?
Usando le funzioni dell'interrupt 13 del BIOS:
1  Alcuni compilatori le hanno in libreria
2  Utilizzando la int86()
3  Con codice ASM inline
ciao, acc.   
a...@libero.it

Newsgroup: it.comp.lang.c
Titolo: Intercettare exe

Salve a tutti.
E' uno dei miei primi post su questo NG.
Avrei bisogno di intercettare (cosi' come fa Norton Antivirus per chi lo
avesse) ogni qual volta viene eseguito un file .exe e ricavare il nome del
file e l'area di memoria dove si trova il codice... in ambiente Win32
ovviamente.
Qualche dritta?
Grazie.

 wrote in message
news:ooMt7.19318$C15.2...@news.infostrada.it...

Studia i sorgenti (dal MSDN, forse devi aggiustare il Path o cercare
"Samples Sdktools code Spy"):
mk:@MSITStore:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN98\98VSa\10
33\code0x07.chm::/devdoc/good/code/sdktools/spy/c5518_8wvs.htm
(a mano: MSDN Library/Platform SDK/Reference/Code Samples/SDKTOOLS/)
Nella cartella dei esempi in MSDN trovi anche per WINNT i PVIEWER (process
viewer) e WALKER (memory walk).
Stessa cosa sotto SYSMGMT/WIN9XMIG/PVIEW

Qualche dritta?
it.comp.programmare.win32.
-- 
Andrea Laforgia - walkietalkie(at)
libero.it

 ha scritto nel messaggio
news:ooMt7.19318$C15.2...@news.infostrada.it...

Newsgroup: it.comp.lang.c
Titolo: Modificare un EXE

Ciao ragazzi,
ho una strana necessità...
Conoscete il programma di File Sharing Lopster per Windows?
Quello che mi serve è questo... La directory del programma è organizzata in
questo modo: c'è il file lopster.exe, ci sono le varie dll e poi dentro una
directory (conf) ci sono tutti i file di configurazione.
Tra questi file di configurazione ce ne è uno che si chiama server.list...
In questo file praticamente vengono scritte delle informazioni ogni volta
che dal programma si aggiunge un nuovo server.
Il mio problema è questo... Vorrei spostare il file
c:\programmi\lopster\conf\server.list sotto una directory diversa, ad
esempio c:\prova\server.list e magari anche cambiandogli il nome,
chiamandolo ad esempio c:\prova\listaserver
Purtoppo se lo sposto, ogni volta che apro lopster il programma mi ricrea il
file sotto la directory dove era prima... e questo suppongo perchè è scritto
nelle istruzioni del .exe
Vorrei sapere, è possibile modificare il file .exe in modo da dargli una
patch diversa dove salvare il file server.list? E se si puo' fare, come si
fa?
Ho anche i sorgenti (penso sia scritto in c++), pero' li mi sono totalmente
perso (sono un po' a corto di programmazione :D)
Cosky

 perso (sono un po' a corto di programmazione :D)
Cosa pensi che modificare un exe sia più semplice che modificare dei sorgenti? 

 perso (sono un po' a corto di programmazione :D)
Beh se hai i sorgenti è la cosa più semplice trovi nei file dei sorgenti 
quelle istruzioni in cui il file server.list viene cercato nella cartella 
d'installazione del programma. Modifichi e ricompili.
Ma se sei a corto di programmazione lascia stare.
Comunque qui sei OT (visto che parli di modificare un .exe), prova su un newsgroup per sistemi win
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  |
+-----------------------------------------------------------+

 Cosa pensi che modificare un exe sia più semplice che modificare dei
sorgenti?
No... ma l'exe è uno solo già compilato... i sorgenti (quelli di Lopster)
sono almeno 30 file diversi (e sinceramente non so proprio dove mettere le
mani) :(

 Ma se sei a corto di programmazione lascia stare.
Penso di lasciar stare... sono troppi file i sorgenti e non ci capisco quasi
niente di C :(
Purtoppo mi sono fatto le ossa solo con VB :(
Cosky

 VB :(
  <stra-OT>
  Se hai sottomano un interprete PERL, da dentro la directory dei sorgenti
  dai:
  perl -pibak -e "s/\/path\/da\/sostituire/\/nuovo\/path\///" *
  Indicando gli slash con \/ perchè son caratteri speciali. Dovrebbe 
  fare al caso tuo.
  </stra-OT>
  Ciao ciao,
  P
-- 
<!--_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
                      The Hacking Pages
 
www.lulli.net
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-->
Newsgroup: it.comp.lang.c
Titolo: Break

void main()
{
  break;
}
Mi da errore .. sia usando il compilatore Borland Builder 4.0 che il
(vecchissimo) Borland Turbo C 3.0 .. sapete perche?

 wrote in message
g__q7.20829$Lp6.7...@news.infostrada.it...

Perchè break va messo dentro un ciclo (for, while, etc...) altrimenti cosa
dovrebbe interrompere?
Es.
int i = 10;
.....
int main () {
                   while (i--)
                        if (i == 4)
                                break;
}
Quando i == 4 esce dal ciclo while.
Ciao
--
Luigi
byte...@hotmail.com
http://web.tiscali.it/luigi_web
ICQ #46240443



?? e ti sembra!!
a che ti serve un main con un break?
--
Rhymes - 
rhy...@myself.com
http://www.foxhound-games.it
"Sapete cosa fa un InputStream quando
gli si racconta una barzelletta? Reader..."

Prova con un return ;)

> Prova con un return ;)
Che centra ?


 ha scritto nel messaggio
news:ey3r7.23186$Lp6.8...@news.infostrada.it...


 simpaticoni...
Scusa, ma se posti codice sbagliato, e ovvio che noi pensiamo che tu non
conosca la regola del caso.
Scrivi il codice *preciso* che non ti funziona.



Furbina....
Allora volevi una risposta tipo:
"Errore di semantica: istruzione break fuori da una istruzione loop oppure
switch"
????
:-)
Newsgroup: it.comp.lang.c
Titolo: Tutorila sulla seriale

Ciao,
 qualcumo sa  indicarmi un posto dove posso trovare un buon tutorial
sull'uso della seriale in C ??
Grazie ,
Michele

 sull'uso della seriale in C ??
Il linguaggio C standard non prevede nemmeno l'esistenza di un
terminale (ma solo di streams di i/o); figurarsi se prevede
l'esistenza di una seriale.  Rivolgiti ad un gruppo dedicato alla tua
piattaforma e sistema operativo, tipo comp.sys.solaris o simile.
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

 wrote in message
rm3dn12...@mlinux.pd.infn.it...


 wrote in message 8gt8rv$n3a$1...@news.flashnet.it...


Newsgroup: it.comp.lang.c
Titolo: [FORSE OT] keyword cdecl

ciao ragazzi, scusate se questo è un messaggio ot..
sapreste spiegarmi cosa significa la suddett keyword?
la trovo in molte definizioni di funzione...

 la trovo in molte definizioni di funzione...
Serve a dire al compilatore di produrre il codice secondo
la convenzione "C" (parametri sullo stack a partire dall'ultimo).
Principalmente si usa quando si mischia codice prodotto a partire
da linguaggi che di default hanno un modo diverso di mettere gli
argomenti sullo stack (es, il pascal li mette a partire dal primo).
Ovviamente queste sono convenzioni, generalmente rispettate, ma non
degli obblighi.
La convenzione "C" e' conveniente quando si hanno funzioni con
numero variabile di argomenti, ma obbiga ad avere codice per la
pulizia dello stack ad ogni invocazione della funzione (e' il
chiamante che si occupa della pulizia) perche' la funzione chiamata
conosce il numero di argomenti solo al momento dell'esecuzione.
La convenzione "PASCAL" e' conveniente quando si conosce esattamente
il numero di argomenti passati. in questo modo il chiamato puo' fare
la pulizia dello stack e il codice e' piu' compatto.
Che queste due sono solo delle convenzioni e' dimostrato dal fatto
che tutte le Win32API seguono la convenzione pascal anche se
(presumibilmente) sono state scritte in "C".
HTH
C:\>iao Angelo

 chiamante che si occupa della pulizia)
Ciao angelo,
t ringrazio per la risposta, ma c'č qualcosa che continuo a non capire,
potresti mica farmi un esempio di "codice che faccia pulizia sullo stack"?
Ho cominciato da poco a studiare l'assembly, pertanto nn č che sia un "mago"
nella gestione dello stack.
"Pulire" lo stack, equivale a "poppare" tutti gli elementi.. ? in questo
caso gli argomenti della funzione .. no?
Quindi si fa a farlo dal C?
Grazie ancora
Ciao;-)

 Quindi si fa a farlo dal C?
Ho dimenticato "come":-P

 Quindi si fa a farlo dal C?
Perche' vuoi farlo tu? E' il compilatore che lo fa per te.
Spero di non aver detto troppe cazzate (la mia conoscenza dell'
assembler non e' quanto di meglio che si possa trovare in giro),
e spero di non averti incasinato ulteriormente.
HTH
C:\>iao Angelo

 ha  scritto nel messaggio
< spero di non averti incasinato ulteriormente.
tranquillo, ho afferrato ;-)
grazie eh!
ciao ciao
Newsgroup: it.comp.lang.c
Titolo: Aiuto Curses

    Avrei bisogno di un manuale per la programmazione in C con le Nucurses
in Linux, ma non riesco a trovare niente ne in rete ne in libreria. Cosa
potete consigliarmi a parte il Curses HowTo che è un po troppo sintetico?
Grazie per l'aiuto e ciao a tutti.
Per favore, rispondete anche in e-mail.
--
Davide Petilli
dpet...@libero.NOSPAM.it
Per rispondermi leva NOSPAM dal mio indirizzo!

 Grazie per l'aiuto e ciao a tutti.
Se trovi qualcosa me lo fai sapere per favore ? (o privatamente o postando
qui)
