mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: tipo intero

perchè il mio libro dice che la variabile di tipo intero decimale
viene indicata con %d mentre ho scoperto per puro caso (amici) che
invece è %i ?!?
il mio libro si riferisce ad una versione particolare del C ?
sul mio mac ho compilato con gcc, se metto %d mi da errore in
compilazione...
thanx

 compilazione...
non vedo differenze:
d, i
An argument of type int is converted to a signed decimal 
notation and written to the output stream.  The default 
precision is 1, but if more digits are required, leading 
zeros are added.
non dovrebbe dare errori.
ciao.

 invece č %i ?!?
Quello piu' usato penso sia proprio %d,
ma in GCC dovrebbero essere assolutamente identici.
ciao,
g.

 ma in GCC dovrebbero essere assolutamente identici.
Lo standard prevede tutti e due.
Pero'  una differenza c'e' (sempre standard, non dipende dal compilatore):
Prima pero'  fammi fare il pignolo e mettere i puntini sulle i (  anzi 
%i :-) ) a uso dell'  OP :
%i e %d non "indicano" variabili ma fanno da convertitori di formato tra 
rappresentazione interna (sequenza di bit)  ed esterna (sequenze di 
caratteri) di interi. Detto questo,  la conversione di formato viene 
utilizzata da printf & Co.  e da scanf & Co..
Nella printf effettivamente non c'e' differenza. Ma nella scanf c'e' una 
differenza di comportamento tra %i e %d:
se indichi %d richiedi che la sequenza di caratteri vada interpretata 
come un intero in notazione posizionale decimale (base 10).
Se invece usi %i l' intero puo'  essere dato in base 10, 8 o 16 usando 
la stessa convenzione usata per le costanti letterali intere ( un numero 
  in cui la prima cifra e'  diversa da zero e' in base 10,  se la prima 
e' zero il numero  e' in base 8 e se inizia per 0x e'  in base 16 ).
Esempio pratico:  se usi %d e dai come input 13 o 013,  il numero viene 
interpretato come tredici ( binario 1101). Se invece usi %i 13 resta 
tredici (1101) mentre 013 viene tradotto come undici (binario 1011).
Giorgio

 invece è %i ?!?
Per la printf() hanno lo stesso significato (anche se %d è di gran lunga 
più utilizzato di %i).  Se il tuo compilatore non la accetta, ha qualche 
problema.
Newsgroup: it.comp.lang.c
Titolo: Libro avanzato

Sono uno studente di ingegneria. Ho avuto la possibilita' di avvicinarmi a questo
linguaggi per fare un esame. Vorrei chiedervi se esiste un libro per la
programmazione avanzata, magari sotto UNIX (LINUX). 
Attualmente uso "C didattica e programmazione" ed. Adison-wensley (non badate
alla ortografia :) ) 
IL libro e' eccezionale, ma si ferma ad un livello medio.
ciao e grazie
-- 
...............................................
. Alessio e-mail: 
i09...@spv.ing.uniroma1.it
 .
...............................................
--
..............................................
 Alessio e-mail: 
i09...@spv.ing.uniroma1.it
 .
..............................................


Io resto dell'idea che il miglior testo in circolazione per il C e' il
Kernighan & Ritchie, dato che spiega tutte le caratteristiche del
linguaggio (anche quelle piu' avanzate) con i relativi esercizi da
svolgere.
Bisognerebbe sapere _quanto_ vuoi avanzare ... :)
Una piccola nota : lo standard ANSI-C uscito nel 1989 ha gia' qualcosa
si diverso dal C del K&R , quindi ti converrebbe prendere un testo che
si rifa' al nuovo standard.
Andrea
------------------------------------------------
combatti anche tu il nano scemo :
http://www.geocities.com/Hollywood/Studio/6989
------------------------------------------------

programmazione avanzata, magari sotto UNIX (LINUX). 
Ho visto da Feltrinelli a Bologna il testo: Unix C Programming
Unleashed, che come tutti quelli della linea Unleashed della SAMS
arriva ad approfondire in modo pauroso. Dovrebbe costare intorno alle
140.000 lire, ma non so dirti l'autore. Prova al sito della sams:
http://www.samspulishing.com
Cordialmente,
Gianni Rondinini, programmer and designer at Pierre s.n.c.
e-mail: mailto:
pie...@mail.asianet.it
homepage: 
http://www.geocities.com/Eureka/Plaza/7153
Red Hat Linux user since 9/25/97
If a train station is where the train stops, what is a work station?

 >
Avanzato in quale senso?  Algoritmi?  API Unix?
Per gli algoritmi, ho trovato un bel libro che spiega le cose in
termini comprensibili (senza troppa matematica:-) che si chiama
Practical Algorithms for Programmers, di Binstock e Rex, dall'Addison
Wesley.
Per la programmazione Unix, compra tutto quello che puoi di Stevens:-)
Advanced Programming in the Unix Environment e
Unix Network Programming
sono degli *ottimi* libri:-)
Ciao,
-- 
David Welton                          
http://www.efn.org/~davidw
 
	Debian GNU/Linux - 
www.debian.org

i09...@spv21.ing.uniroma1.it
 (Alessio Muccini), il giorno 4 Feb 1998
13:51:18 GMT hai scritto:
#
#Sono uno studente di ingegneria. Ho avuto la possibilita' di
avvicinarmi a questo
#linguaggi per fare un esame. Vorrei chiedervi se esiste un libro per
la
#programmazione avanzata, magari sotto UNIX (LINUX). 
#
..
Non e' male "Advanced Programming in the Unix Environment" di W.
Richard Stevens, Addison-Wesley Publishing
(e' in inglese)
Ciao,
REMO FRANCESCHELLI - ITIAV 4a Info.
http://www.geocities.com/SiliconValley/Lakes/7668/
Newsgroup: it.comp.lang.c
Titolo: #define const

ciao a tutti
premetto che sono l'anti c ;)
ma ho una curiosita':
nell'  ansi C la definizioni di costanti tranite const e' eticamente
corretta o bisognerebbe usare #define?
Qualcuno mi diceva che non e' corretta ma compilando un hello word piu' un
paio di stupidate ( e costanti) e compilato con gcc  -Well -pedantic non ho
rilevato warning
e' normale?
lo chiedo perche leggendo sul Karnigham Ritche le costanti sono definite con
#define ma sull' Aitken usa anhche const e mi sembra senza spiegare le
differenze...
ciao e grazie
cib

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

grazie della spiegazione
ciao
cib


#define non è un'istruzione ma è una direttiva rivolta al compilatore
(infatti alla fine della riga non compare il ;)
In pratica è come se fosse una macro, un trova e sostituisci del WORD,
ogni volta che all'interno del codice compare il nome della costante,
il compilatore lo sostituisce con il valore

 ha scritto nel messaggio
news:31d6be8.04033...@posting.google.com...

...precompilatore.

 ...precompilatore.
detto da sempre preprocessore ( sottinteso 'C' )

 
Si certo.....
Ma prova a scrivere
#define StringaLunga "Questa è una stringa di prova ed è volutamente
lunga, e posso andare avanti per un pò ma mi fermo qui"
e
const char* StringaLunga = "Questa è una stringa di prova ed è
volutamente lunga, e posso andare avanti per un pò ma mi fermo qui";
e usala un po' di volte nel codice. Poi mi dici se il compilatore genera
lo stesso codice oppure no.
Oltretutto usando una const "tipizzo" la costante.
Con una #define il compilatore potrebbe decidere di forzare un casting
indesiderato del valore della costante. Andare a stanare il baco poi
diventa assai difficile, soprattutto se il programma è abbastanza
complesso.
A proposito della parola chiave const è buona norma utilizzarla anche
nella dichiarazione dei parametri delle funzioni, quando è previsto che
un parametro non debba essere modificato all'interno della funzione
chiamata. In tal modo il compilatore potrebbe decidere di ottimizzare
passando il parametro per riferimento e non per valore e, soprattutto se
si parla di puntatori, poter passare puntatori a dati dichiarati
costanti o residenti in aree di memoria non alterabili (rom). Il
compilatore inoltre può segnalare eventuali tentativi all'interno della
funzione di modificare i dati puntati da un puntatore costante.
Ciao
Ricky

 lo stesso codice oppure no.
Nel caso della define VisualC++ mi ha generato del codice piu' corto
(ottimizzazione "Minimiza size") usando #define. Con ottimizzazione
"Maximize speed" l'eseguibile e' lungo uguale.
Se vuoi ti spedisco l'assembler dei due file cosi' controlli tu stesso
le differenze.
il codice "C" utilizzato e'
#include <stdio.h>
#define StringaLunga "Questa è una stringa di prova ed e\' volutamente
lunga, e posso andare avanti per un po\' ma mi fermo qui\n"
int main(void)
{
/* La printf e' ripetuta un cinquantina di volte */
   printf(StringaLunga);
    ....
   return 0;

Newsgroup: it.comp.lang.c
Titolo: r: turbo c

{ è alt+123 (contemporaneamente)
} è alt+125
br1
ps dove scarico tc?

lo trovo molto piu' comodo :)
In dos quella sequenza non funzia, nemmeno sui prompt (o almeno, a me non è
mai capitato di vedere un comp sul quale funzionasse)... oltretutto al posto
di altgr si può usare ctrl+alt, cosa comoda per chi come me non usa
praticamente mai lo shift, l'altgr e il ctrl di destra.
Ciao,
Zeppe

Newsgroup: it.comp.lang.c
Titolo: WATCOM C++ Compiler

Qualcuno sa dove trovare il compilatore WATCOM C++?
In modo gratuito si capisce...
-- 
IL RAZZIATORE,
The Only good Windows is an Unistalled Windows
-----------------------------------------------------
EMAIL: 
razzi...@usa.net
WEB:   
razziatore.dsx.org
 sito in aggiornameto/alestimento
ICQ:   67552596

 In modo gratuito si capisce...
www.openwatcom.org
Fra qualche mese lo troverai gratuito ed anche legale, quindi con un po' di
pazienza...
Condivido, comunque, la predilezione per questo compilatore.

 Condivido, comunque, la predilezione per questo compilatore.
Perchč l'hai comprato? Come č? Ha un GCI (Graphical Control Interface) o 
un IDE (Ambiente di sviluppo integrato, tipo quello di Borlan Pascal 7) 
la diferenza come saprai č molto grande...


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
I am member of TeamSybase and the OpenWatcom team so I can be asked about
Watcom C/C++ and Watcom Fotran
--
Stephen Howe [TeamSybase]

 un IDE (Ambiente di sviluppo integrato, tipo quello di Borlan Pascal 7)
Ecco il punto dolente per chi e' abituato agli IDE; si, c'e' un IDE, ma non
e' sviluppato come si immaginerebbe uno che arriva dal Borland o dal Visual
C; io ero comunque abituato ai tools da riga di comando, per cui non e'
stato un problema.
Puo' essere che nelle ultime versioni sia migliorato, io parlo in
riferimento alla 10.5 ( o giu' di li', non ricordo esattamente)
In definitiva: il miglior compilatore che abbia avuto sotto mano, se devi
farci lavori seri e vuoi codice performante, credo sia la scelta giusta,
peccato che al momento sia tutto fermo, vedremo.
saluti
Riccardo

 peccato che al momento sia tutto fermo, vedremo.
Percui non sai quando uscira il compilatore Free?


 Percui non sai quando uscira il compilatore Free?
Si parla di primavera per la prima release
Buon lavoro
Newsgroup: it.comp.lang.c
Titolo: Maledetti puntatori... Help

allora, vediamo se ho capito qualcosa.
dichiaro
int *p
quindi p sarà l'indirizzo di memoria
mentre *p sarà il valore corrispondente a quell'indirizzo.
giusto?
poi
**p è l'indirizzo alla memoria della variabile puntatore. giusto? (ho
qualche dubbio)
l'indirizzo di una variabile non si passava come &a ?
quindi invece di passare **p, perchè non passare &*p ?
infine
c'è un modo facile facile per spiegare perchè quando devo fare
modifiche in una lista devo passare il puntatore doppio???

 modifiche in una lista devo passare il puntatore doppio???
Se, all'interno di una funzione, devi modificare "permanentemente" il 
valore di un argomento (variabile "normale"), passi l'indirizzo (il 
prototipo della funzione avrà un argomento puntatore), se devi 
modificare un puntatore (ovvero l'indirizzo contenuto in una variabile 
puntatore e *non* il dato puntato), devi passare l'indirizzo del 
puntatore (il prototipo della funzione avrà un argomento puntatore a 
puntatore). Praticamente il passaggio è lo stesso, ma cambia il 
prototipo della funzione.
Ciao.

Newsgroup: it.comp.lang.c
Titolo: sockaddr_storage : what is it? what is userfull for?

Hallo,
I'm tring to learn programming in IPv6 bu I have a question:
sockaddr_storage : what is it? what is userfull for?
where find little example of use?
Thank you in advance for the time you'll spend for me!
Mario


I have no answers, but a question:
why the hell are you writing in english on an italian
newsgroup ?
g.

Newsgroup: it.comp.lang.c
Titolo: Consigliatemi un buon libro sul C!

Vorrei conoscere il nome di buoni testi sul linguaggio C
che non sia il libro di Kernighan & Ritchie "Linguaggio C",
magari con i relativi prezzi .
Grazie Mille!

magari con i relativi prezzi .
Accipicchia ! e dire che quello e' il miglior libro sul C in
circolazione !
------
Andrea
------

On Sat, 27 Dec 1997 18:53:56 GMT, 
andrea_...@bigfoot.com
 (Andrea)
wrote:

 concordo, comunque puoi andare qui
-->
ftp://svr-ftp.eng.cam.ac.uk/misc/love_c.ps.Z
bye
## Marco Mazza
## Undergraduate Student of Computer Science
## University of Bologna, Italy
## E-Mail(1): 
mir0...@MO.NETtuno.it
## E-Mail(2): 
MarM...@CS.UniBO.it
 
## Home: 
www.cs.unibo.it/~marmazza
Newsgroup: it.comp.lang.c
Titolo: funzione calc_espressione

supponete di avere questa struttura di un nodo di un albero:
struct nodo_tree[
      char * key;
      int tag ;
      int info;
]
immaginate che ho costruito un albero con nodi del genere
dove ci ho messo una bella ( ah ah !! bella! ) espressione trovata col
parsing aritmetico ecc ecc ....
z = ((2*a)+6).
le variabili me le ricavo dalla tavola hash, quindi no problem....
ora scriviamo il relativo albero, se a=8
          +
        *    6
      2   8
devo scrivere la funzione , ricorsiva se possibile, che mi calcola il
totale, che può essere applicata anche a espressione più bastarde!!
chi mi può dare una mano???
ringrazio vivamente tutti!
ciao!
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Te la scrivo "ad occhio" non guardando se funziona nel preciso, quindi
controllatela per bene.
Ovviamente supponiamo che ci siano operatori che supportino sempre 2
operandi.
float calc (struct nodo_tree *t)
{
   if (t->key č un numero)
     return numero;
   else
      if (t->key č un operazione)
         return (calc(t->left) operazione calc(t->right));
}
Penso che dovrebbe andare ... adattala ovviamente al tuo caso. Cmq
teoricamente il calcolo di un'espressione contenuta in un albero binario si
fa con la solita visita in post-ordine. Magari se hai un libro di teoria
puoi trovarla lě.
Ciao.

Newsgroup: it.comp.lang.c
Titolo: Matrice di strutture

Salve, premetto che sono un principiante assoluto per quanto riguarda il C,
avrei bisogno di creare come da oggetto una matrice i cui elementi siano delle
strutture. Sul mio manuale di C si parla solo degli array di strutture.
per logica ho provato il seguente metodo ma non funziona(prbabilmente e del
tutto sbagliato):
struct prova
{
     ......
};
void main()
{
struct prova pippo[10] [10];
}
Ovviamente ho omesso molti particolari.
Qualcuno puo spiegarmi come fare?
Ringrazio chiunque voglia aiutarmi.
Ciao,
Luca.

 ha scritto nel messaggio
news:981585554...@news.galactica.it...


 ha scritto nel messaggio
news:981585554...@news.galactica.it...


void main()
^^^^^
main DEVE restituire int
--
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."

ho risolto,  ringrazio comunque chi si e interessato al problema.

Newsgroup: it.comp.lang.c
Titolo: passare array di array a una funzione

Esempio:
void Inizializza(char *array[], int dimensione);
int main()
{
char Minnie[15],[64];
Inizializza(/*come passo Minnie?*/, 15);
return 0;
}
void Inizializza(char *array[], int dimensione)
{
 int i;
 for(i=0; i<dimensione; i++)
 {
  array[i]="pippo";
 }
}
Grazie mille. Andrea

 Grazie mille. Andrea
Ciao, Andrea.

 void Inizializza(char *array[64], int dimensione)
Scusami Enrico se mi permetto, ma sei sicuro che questa dichiarazione
funzioni?. Ad occhio e croce mi sembra che
al passaggio di Minnie restituisca un errore come: incompatible pointer
type.


Oopss! Accidenti a me! La versione corretta č
void Inizializza(char (*array)[64], int dimensione);
EMG

Approfitto del subject per proporne un altro:
per quanto il compilatore non sollevi obiezzioni riguardo ad un codice,
secondo voi a cosa può servire e soprattutto se vi è mai capitatato un caso
del genere:
int arr[20][390][3399];
int (*puntatore) [3399] = &arr[0][0];
Personalmente gli unici casi in cui ho trovato -ed utilizzato- sintassi
simili sono:
int array1[n] [n]; // n assume un qualsiasi valore
int (*puntatore) [n] = array1; // approfitto della conversione del nome
dell'array a puntatore ad array di n elementi
int (*puntatore1) [n] [n] = &array1;
Alcuni vecchi articoli enunciavano che un'eventuale ommissione di indici,
come nel seguente caso::
int arr[10][20];
  ... arr[2];
può portare ad undefined behavior o comunque ad una situazione poco pulita
sia dal punto di vista prettamente di programmazione e di efficienza.
Grazie.
Newsgroup: it.comp.lang.c
Titolo: Aiutate un novellino!!!

Ciao a tutti scusate l'intrusione ma ho realmente bisogno di aiuto!:))
Allora il 12 febbraio dovro' sostenere un esame di Fondamenti Di Informatica
che consiste nello scritto di un programma in Ansi C
(strano scrivere un programma in un foglio di carta non credete?
misteri della Universita' di Palermo).
Come teoria studio dal testo di :CERI,MANDRIOLI;SBATTELLA
-Informatica Istituzioni/Ansi C.
*Potreste consigliarmi un libro di esercitazione??
Come compilatore uso un borland C++ 2.0
Finora non ho avuto grossi problemi ma c'e' una cosa che mi sta' facendo
impazzire.Vi ho allegato(spero che non vi arrabbiate non credo sia molto
pesante) un semplice programmino che fa' la somma di due interi; il problema
nasce dal volere ripetere l'esecuzione fino a quando l'utente non inserisce
come carettere di controllo 'q'.Provate a lanciare il suddetto programma,
quello che mi fa' imbestialire e':
-e' come se l'istruzione scanf("%c",&ctrl) venisse eseguita una volta
 rientrati nel ciclo while.Perche'? Non e' che assegna la stessa cella di
memoria riservata al primo addendo al carattere ctrl?BhOOo!!!
Vi prego spiegatemi il comportamento del programma e cosa c'e' di
sbagliato!!
PS:non studio il C solo per l'esame,quello e' importante, pero' ho
intenzione di proseguire anche oltre a cio' che abbiamo svolto durante il
corso, sarei molto grato se qualcuno mi offrisse la sua disponibilita' per
potermi risolvere problemini come questo magari
via e-mail per evitare di scocciare il newsgroup con messaggi come questo!!!
Grazie Mille!!!
end

questo!!!
Guarda che non scocci nessuno, il newsgroup serve proprio a questo ed ha
l'enorme vantaggio che la prima persona libera ti puo' rispondere.
-----
Ciao ed... in bocca al lupo!
Angelo.

Non prendere l'abitudine a postare attachments nei NG (passi questo che era
piccolino!!!).
Comunque la soluzione piu' rapida che ho trovato e' inserire dopo la scanf
del secondo addendo
una fflush(stdin) che scarica tutto cio' che eventualmente e' rimasto nel
buffer di input.
Provare per credere ...
CIAO
Fabio
(ti prego di rispondere al mio e-mail privato 
fab...@login.it
 NON con un
reply, grazie)

via e-mail per evitare di scocciare il newsgroup con messaggi come questo!!!
se non vuoi fare domande gia` fatte procurati le faq del NG,
altrimenti ... i NG servono a questo.
--
[ranger, email: 
ran...@queen.it
]
ICQ# 6585343
http://members.tripod.com/%7Eranger_rg/

via e-mail per evitare di scocciare il newsgroup con messaggi come
questo!!!
Spero che il newsgroup sia dedicato anche ai principianti e non solo agli
esperti.
Comunque non ho letto la netiquette, qualcuno può dirmi dove trovarla?

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

Salve qualcuno mi sa dire se nel compilatore c di borland per DOS in
graphics.h esiste una funzione che mi permette di stampare il valore di una
variabile int?
Ho trovato solo funzioni che stampano stringhe.

 ha scritto nel messaggio
news:jsUc6.42251$ew1.2...@news.infostrada.it...


 ha scritto nel messaggio
news:jsUc6.42251$ew1.2...@news.infostrada.it...

Newsgroup: it.comp.lang.c
Titolo: un aiuto veloce x un problema banale...

ciao,
il problema sta su come passare un char* ad una funzione...mi spiego  
meglio:
void pippo (parametri)
{
	...
	char* nome=0; //dichiaro la variabile
	getName (&nome);
}
void getName (char** nome)
{
	...
	char* temp=0;
	temp = "giuseppe"; // in realtà la stringa viene estratta da un database
 
	(*nome) = (char*)malloc(strlen(temp)*sizeof(char));
	strcpy ((*nome), temp);
 
	free (temp);
}
con questo metodo funziona, solo che valgrind mi da un problema per  
'strlen(temp)', e lo so perchè ho provato a fare
int len = strlen(temp);
e mi dava l'errore qui...
dove sbaglio?
come altro posso fare?
grazie
-- 
Using Opera's revolutionary e-mail client: 
http://www.opera.com/mail/

Ciao. Che errore ti dava esattamente?
Per passare una stringa a una funzione è meglio passare il puntatore,
e non l'indirizzo del puntatore contenente l'indirizzo della stringa.
Ex:
void Func(char*);
char *Str="Prova";
Func(Str);
void Func(char* stringa)
{
    printf(stringa);
}

     (*nome) = (char*)malloc(strlen(temp)*sizeof(char));
non so se è questo, cmq:
(*nome) = (char*)malloc( (strlen(temp)+1) *sizeof(char) );
ciao.

 e non l'indirizzo del puntatore contenente l'indirizzo della stringa.
se deve modificare il puntatore *nome il passaggio del 
puntatore a puntatore è corretto.
ciao.

e mi dava l'errore qui...
Come si può capire il problema, se non citi l'errore?

 dove sbaglio?
Forse dovresti dirci come "in realtà la stringa viene estratta da un
database" per farci capire il problema, anche perché quello che hai
scritto ti genera un segfault sicuro sulla free(temp) 
Ps: perché usi char * temp = 0; anzichè char * temp = NULL; ? è fatto
apposta..
Ciao
M`
Newsgroup: it.comp.lang.c
Titolo: grafo

Dato un grafo implemtato con lista di adiacenza o matrice come si puo
verificare l'esistenza del cammino fra 2 o piu nodi???
Mi postereste qualche riga di codice!!
Inoltre quale tipo di visita e' piu' appropriata quella in ampiezza o in
profondita???
Grazie

Piero wrote:

non dovrebbe essere difficile:
associ ad ogni noto un flag "visitato"
definisci una funzione in questo modo:
- etichetta il nodo attuale come visitato
- controlla se il nodo attuale e' adiacente a quello finale
se si ritorna vero
altrimenti chiama ricorsivamente se stessa su tutti i nodi adiacenti non 
etichettati come visitati...
- se non ha nodi adiacenti non visitati ritorna falso
facile no...
certo, forse se il grafo e' grosso e' un po' dispendioso...
se poi vuoi sapere anche il cammino cambia tutto...
se qualcuno ha idee migliori, io sui grafi non mi ricordo piu' una fava... 
se mi becca il mio prof di ricerca operativa...
Pinolo  


Fai una visita in'ampiezza del grafo prendendo come radice il nodo di
partenza. Ottieni un'albero dei cammini minimi (se il grafo non e'
pesato). 
Da qui vedere se esiste un cammino basta che ricerchi il nodo
bell'albero. 
Per quel che riguarda il codice... uhmmmm? Non ho mai fatto una cosa del
genere in C. Solo teoria a lezione di algoritmi :-D

Scusa ma devi fare il progetto per Algoritmi e strutture dati 2 a
informatica.uniroma2  ?!
NM

 ha scritto nel messaggio
news:3d077493...@news.tiscalinet.it...

Newsgroup: it.comp.lang.c
Titolo: Arrotondare i numeri!!

Ciao, Problemone: sono neofita del C, ho il seguente problema:
ho un float (es. 9,451000000)
voglio arrotondarlo a max 2 cifre decimali e tenendolo sempre come float,
quindi avere 9,450000000
come posso fare?? NB no C++, C Borland
Grazie!!
--
**********************
Matteo Schianchi
Real - Time S.n.c.
Tel. 035-239900
**********************

quindi avere 9,450000000
#include <stdio.h>
#include <stdlib.h>
main()
{
    double d = 9.457000 ;
    char s [10] ;
    sprintf ( s, "%.2f", d ) ;
    d = atof ( s ) ;
}


#include "math.h"
float X=9.451;
float a= floor( X *100 ); // 2 cifre decimali >> per n cifre : 10^n
ciao
donCiccio

 float a= floor( X *100 ); // 2 cifre decimali >> per n cifre : 10^n
Non credo sia corretto a causa dell'approssimazione dei numeri in
floating point. Molto meglio la soluzione di Andrea.
EMG

 wrote:
[ snip ]
d>#include "math.h"
d>float X=9.451;
d>float a= floor( X *100 ); // 2 cifre decimali >> per n cifre : 10^n
In questo modo pero' viene troncato, e non arrotondato.
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

 come posso fare?? NB no C++, C Borland
Non puoi: ad es. 0.1 decimale non ha una rappresentazione binaria finita.
Usa gli appositi formati di printf() per stampare il numero di cifre
che vuoi, oppure usa float "interi", cioe' scalati di *100 e troncando
la parte frazionaria, riscalando di /100 quando li stampi.
Ciao,
- Umberto

 In questo modo pero' viene troncato, e non arrotondato.
C'era anche un'altro errore, comunque....
Se vuoi arrotondare, allora:
float a= floor( X *100 +0.5 )/100;
sicuramente piu' veloce della soluzione con sprintf
ciao
donCiccio

> In questo modo pero' viene troncato, e non arrotondato.
d>C'era anche un'altro errore, comunque....
Se intendi la mancata divisione per 100, ho avuto pieta' 8-P
Scherzi a parte, mi sembrava un'evidente svista.
d>Se vuoi arrotondare, allora:
Io non voglio nulla ;), ti ho solo fatto notare che tu stavi troncando,
quando chi ha posto la questione parlava di arrotondare.


come posso fare?? NB no C++, C Borland
Che ne dite di porre questa domanda nelle FAQ ?

 Che ne dite di porre questa domanda nelle FAQ ?
Sono d'accordo.
EMG


ICQ #34602650

 maggiore, quindi implementare il controllo (e la correzzione)
                                                        ^^
Prima che qualcuno intervenga, me ne sono accorto :-)

Newsgroup: it.comp.lang.c
Titolo: help: sincronizzazione client - server

salve a tutti
sto realizzando un'applicazione client server che comunica tramite tcp/ip
con socket di tipo stream (connection-oriented). in linea di massima il
processo client dovrebbe mandare dei dati (semplici stringhe di testo) al
server, il quale dovrebbe scriverli su un file e mandare un segale al client
quando ha finito in modo che il client invii un'altra stringa di dati.
quindi la mia necessità è di sincronizzare i due processi in modo che il
server invii un segnale al client una volta eseguite delle istruzioni.
vorrei un aiuto su come implementare la sincronizzazione e lo scambio di
segnale tra i due processi in c. potreste farmi qualche semplice esempio di
codice (compresi gli headers da includere)? potreste anche indicarmi un
metodo semplice per criptare i dati che i due processi si scambiano?
qualunque aiuto è ben accetto (potete anche rispondermi in mail)!!!
grazie anticipato a tutti
ciao
~*dyablo*~
mail: 
dya...@virgilio.it

 mail: 
dya...@virgilio.it
Ciao diablo,
non ho il tempo di scriverti un esempio di codice, ma ti posso dire come
fare
le librerie sono differenti a seconda dell'os. in gnu/linux usi
sys/socket.h
sys/types.h
netinet/in.h
il client invia una stringa con send(), poi lancia una recv(), che è
bloccante (il prog non va avanti fino a che non gli viene inviato
qualcosa).
Il server, che aveva eseguito una recv, riceve la stringa e ne fa quel
che vuole. Quando ha finito di lavorare con la stringa invia un qualsiasi
carattere al client.
Il client, ricevendo qualcosa, si sblocca e invia un'altra stringa.
Metti il tutto in un ciclo e puoi inviare e ricevere tutte le stringhe
che vuoi.
Ciao,
Riccardo

grazie 1000, problema risolto
ciao
~*dyablo*~
 mail: 
dya...@virgilio.it
"Riccardo Galli" <rycki@_CUTME_tiscalinet.it> ha scritto nel messaggio
news:pan.2002.06.29.02.53.15.414116.3213@_CUTME_tiscalinet.it...


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

Salve a tutti,vorrei sapere se esiste in rete un corso per imparare a
programmare nel linguaggio c.
Grazie mille

 Grazie mille
Leggi le FAQs (vedi firma), ci sono almeno 3 links a corsi che puoi
scaricare gratuitamente.
ciao ciao
Marco
--
Marco Coppo
University Of Sheffield
FAQ di it.comp.lang.c:
http://www.programmazione.it/linguaggi/c/itcomplangc.htm

Newsgroup: it.comp.lang.c
Titolo: Come faccio a...?





Come ca##o faccio a digitare la parentesi graffa 
chiusa nel c++? Quale combinazione tasti devo usare?


th...@libero.it



 ha scritto 
  nel messaggio 
news:000a01c07b14$a3275480$5e051e97@it
...


 ha scritto nel messaggio
news:000a01c07b14$a3275480$5e051e97@it...


, "M D" 
<marco....@NOSPAMtin.it> wrote:

ALT 125

> CTRL+ALT+SHIFT e +
{ =123
}=125

"M D" <md...@NOSPAMinwind.it> ha scritto nel messaggio
news:93ifci$5sb$1...@nread2.inwind.it...

CTRL+ALT+SHIFT+ [
CTRL+ALT+SHIFT+ ]

 ha scritto nel messaggio
news:94s2do$n4v$1...@pegasus.tiscalinet.it...

Newsgroup: it.comp.lang.c
Titolo: djgpp&allegro

Salve a tutti,
ho il seguente problema ho provato a compilare gli esempi della
cartella allegro del djgpp  ma il compilatore mi da questo errore
fermandosi sulla riga #include"allegro.h" (non trova il path?)
per la precisione mi dice ERROR  NO SUCH FILE OR DIRECTORY(ENOENT)
grazie per l'aiuto


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

On Sun, 11 Feb 2001 14:13:13 GMT, 
mend...@iol.it
 (Libre) wrote:
ho provato anche con <allegro.h> ma mi da lo stesso errore :(


 ERROR  NO SUCH FILE OR DIRECTORY(ENOENT)
hai settato in autoexec.bat il PATH per la compilazione ?
SET DJGPP=C:\DEVELOPMENT\DJGPP\DJGPP.ENV
SET PATH=C:\DEAMM\CDENG\ASRUNTIM;\DEVELOPMENT\DJGPP\BIN


On Sun, 11 Feb 2001 14:13:13 GMT, 
mend...@iol.it
 (Libre) wrote:
certo il mio autoexec č settato cosě
SET PATH=c:\djgpp\bin;C:\WINDOWS;C:\WINDOWS\COMMAND;
SET DJGPP=c:\djgpp\djgpp.env


 ho provato anche con <allegro.h> ma mi da lo stesso errore :(
li hai messi aggiornati i path di ricerca di header e librerie?

 wrote:
come faccio a metterli aggiornati?


Per installare Allegro, bisogna eseguire tutta una procedura speciale, l'hai
fatta?
Ciiips
Enrico S.
--
Webmaster della Pagina NON Ufficiale del SonyCRX100
SonyCRX120,  SonyCRX140E/S, SonyCRX100EX, HP8100
HP8200, HP9100 & HP9200
http://www.freeweb.org/computer/SonyCRX100/

Libre wrote:

Hai scritto 
gcc esempio.c -o esempio.exe -lalleg
?
Che tu abbia omesso -lalleg?
Newsgroup: it.comp.lang.c
Titolo: Spawn in linux

Ciao a tutti,
ho un problema: in windows esiste una serie di funzioni (spawn,
spawnlp, ...) che servono a chiamare un altro programma (bloccando se
si vuole il programma "padre") e (cosa importante) restituiscono il
valore ritornato dal programma chiamato.
Es.:
sono nel programma A
chiamo: int i=spawn(PROGRAMMA B)
qui viene eseguito il programma B
una volta terminato il programma B (con un "return 14"), torno in A,
con in i il valore 14
Io pero' ora uso linux.
Il problema in linux e' che non riesco a capire come fare a chiamare un
programma esterno e ricavarmi il valore ritornato dal programma B
(cioe' non riesco a ricavarmi la i dell'esempio sopra).
Fondamentalmente il mio problema e' che la famiglia di funzioni exec
terminano il programma A.
Grazie in anticipo per l'aiuto (sperando di essermi spiegato
decentemente).
Ciao,
DR

 con in i il valore 14
se non erro dovresti usare la fork() per creare un nuovo processo
e la waitpid() (o semplicemnte wait() se crei un unico processo)
per bloccare il processo padre fino alla terminazione del figlio.
Approssimativamente il codice da usare e'
int pid = fork();
if(0 < pid)
{
// se la fork ha successo al processo padre viene restituito
// un valore maggiore di 0
// ---------------------------------------------------------
   int retVal = 0;
   wait(&retVal);
}
else if (0 == pid)
{
// esecuzione del codice del processo figlio
// -----------------------------------------
   execQUALCOSA();
}
else
{
// Errore di qualche tipo
}
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Angelo Paolitto ha scritto:

Se ho capito, non e' precisamente quello che intendo: il mio problema
e' che ho un programma (chiamiamolo B) gia' in formato binario che mi
restituisce 0 se finisce male e 1 se finisce bene.
Io voglio scrivere un programma A che chiami B e, dopo che B e'
terminato, sappia (il programma A sappia) come B e' terminato (cioe'
con un 1 o uno 0) ?
In pratica quello che non riesco a fare e' memorizzare in una variabile
in A cio' che il programma B ritorna.
Ciao e grazie comunque,
DR


Come ti hanno gia` detto devi usre fork() ed exec().
in pid, status;
----------------------------------
pid = fork();
if (pid == 0) {
 
	execl ("B");
} else if (pid > 0) {
	wait(&status);
} else
	/* errore nella fork() */
----------------------------------
Il programma A manda in esecuzione B e si mette in attesa sulla wait() 
finche` B non termina.  la variabile status contiene il codice di 
ritorno di B.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

Giovanni ha scritto:

Grazie mille... non avevo capito.
Ciao,
DR
Newsgroup: it.comp.lang.c
Titolo: [1/2 OT] Files di configurazione

Salve a tutti, non seguo da molto il NG, ma mi rivolgo subito a voi per
chiedere se conoscete qualche funzione (magari della libreria standard, o
implementate da qualcuno...) che permetta di leggere e scrivere comodamente
in files di configurazione facilmente modificabili dall'utente...
dello stile:
[sezione]
key=valore #commento
se non ci sono funzioni gia' fatte mi dite come fate nei vostri programmi?
non bisognera' mica bisogna andare avanti di fprinf e fscanf? :)
Grazie per le risposte che verranno,
Kne'

 non bisognera' mica bisogna andare avanti di fprinf e fscanf? :)
Perchè, cosa c'è di male in fprintf e fscanf? :-)

Tin Toy wrote:

No, nulla di male...ma se esistesse una funzione gia' fatta
char* read_info(char* sezione, char* key)
mi allevierebbe molte fatiche :)
ovviamente l'ho buttata li'...ci vorrebe anche una open_info, una
close_info...ma qualcuno le avra' gia' fatte da qualche parte :)

 
Prova un po' questa.
 
http://www.platon.sk/projects/libcfg+/
Max

 Max
Mmm....grazie mille, adesso mi sfoglio un po' le pagine della
documentazione ;)
Kne'
-- 
Sometimes I fill like I have nothing to say and I want to communicate this

Newsgroup: it.comp.lang.c
Titolo: lettura file

Salve a tutti, sto iniziando a programmare in C e vorrei
sapere come si gestiscono i file aperti in modalità binaria.
Ho fatto un programmino per l'elaborazione di file di testo
(una specie di crittografia) ma non posso utilizzarlo con i
file di altro formato.
Riesco a leggerlo come se fosse di testo ma mi vengono
restituiti EOF anche a metà file; anche cercando di
eliminare questo problema (ovvero fermandomi solo con feof)
non riesco a leggere il file in una stringa e riscriverlo.
Vorrei quindi sapere se esistono altri comandi; ho già
cercato sul manuale ma il problema non viene trattato.
Grazie
Marco Dalai


wrote:

Bisognerebbe vedere cosa hai scritto per capire dove si
puo' trovare il problema. Il fatto che tu accenni a leggere
il file in una "stringa" mi fa sospettare un uso delle
funzioni di libreria standard del C che pero' non ammettono
la presenza di caratteri NUL ('\0') all'interno delle
stringhe (infatti il carattere NUL viene usato come
terminatore di stringa).
Un esempio di programma C che legge un file e lo riscrive
in forma "criptata" potrebbe essere:
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char *argv[])
{
  FILE *src,*dst;
  static unsigned char buffer[4096];
  int sz,i;
  if (argc!=3)
  { printf("Sintassi: %s <src> <dest>\n",argv[0]); exit(1); }
  if((src=fopen(argv[1],"rb"))==NULL)
  { printf("Errore in apertura file sorgente.\n"); exit(1); }
  if((dst=fopen(argv[2],"wb"))==NULL)
  { printf("Errore in apertura file destinazione.\n"); exit(1); }
  for(;;)
  {
    sz=fread(buffer,1,sizeof(buffer),src);
    if (sz<1) break;
    for (i=0; i<sz; i++)
      buffer[i]*=127;
    fwrite(buffer,1,sz,dst);
  }
  fclose(src);
  fclose(dst);
  return 0;
}
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

 
http://www.netservers.com/~agriff
Grazie
Ciao
Marco Dalai
Newsgroup: it.comp.lang.c
Titolo: vendo corsi di C & Clipper

Vendo corso Jackson linguaggio C (8 dischetti + dispense) e Clipper
(dischetti + dispense). Lire 25.000 cadauno + spese spedizione.



Newsgroup: it.comp.lang.c
Titolo: operatore ternario e puntatori

E' corretto questo codice:
void f(char *ptr);
...
char *default;
char *q;
...
f(q?q:default);
...
Il dubbio è se si possono mettere puntatori negli argomenti di ?: o
solo interi.
E.


Dalla grammatica BNF che ho io sembra che ci si può mettere
praticamente qualsiasi cosa (tranne le definizioni).
Ciao!

 solo interi.
Certo che si.
Stai dicendo: chiama la funzione f() passando come argomento il 
puntatore q se questo esiste (� assegnato) altrimenti passa il puntatore 
default se q � NULL.
Una importante precisazione: non puoi usare la parola default in quanto 
fa parte del linguaggio stesso.
Ciao.


Si tratta di una FAQ (la 5.3 nello specifico): si puo' fare senza
problemi e l'espressione (q?q:default) equivale a ((q!=0)?q:default)
ed anceh a ((q!=NULL)?q:default) (vedi l'altro thread per NULL==0 :)
ciao
Giacomo

 solo interi.
S�, si possono mettere.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 S�, si possono mettere.
Ringrazio tutti per le risposte.
E.
Newsgroup: it.comp.lang.c
Titolo: Dichiarazione di strutture annidate e riferimenti... "incrociati"

Buongiorno a tutti,
ho un problema non banale nella dichiarazione di strutture annidate.
Per descriverlo userò un esempio. Supponiamo che io decida di dividere
un programma in due moduli: a.c e b.c (rispettivamente abbinati agli
header files a.h e b.h).
Nel file a.h dichiaro un nuovo tipo di dati con il seguente codice
typedef struct {
    ...
    T_struct_b *P_x;
} T_struct_a;
dove T_struct_b è un tipo di dati definito in b.h. Per fare questo
devo tuttavia aggiungere prima della definizione di T_struct_a la
direttiva di inclusione dell'header file b.h, giusto?
La domanda che vi pongo è la seguente: è possibile, mantenendo la
definizione precedente di T_struct_a, definire il tipo T_struct_b nel
seguente modo?
typedef struct {
    ...
    T_struct_a *P_y;
} T_struct_b;
Devo aggiungere anche in questo file, prima della definizione di
T_struct_b, la direttiva di inclusione dell'header file a.h? Io ci ho
provato ma non funziona... anche perché per definire uno dei due nuovi
tipi occorre che l'altro lo sia già.
Vi ringrazio per l'attenzione,
Stefano B.

 } T_struct_b;
Giusto?
Non deve esserci un file .h per ogni file .c, ma un file .h per ogni entita'
logica in cui e' diviso il tuo programma.
La cosa piu' logica in questo caso e' fondere i 2 header, non ha senso
mantenerli separati se necessitano di queste dichiarazioni incrociate.
Se no devi fare un inclusione incrociata: proteggi i 2 header dalle doppie
inclusioni con delle #ifndef e poi includi il primo header nel secondo e
viceversa. Non e' una cosa molto bella da fare, anche se funziona
(proteggendo gli header non c'e' pericolo che vengano inclusi 2 volte).
Prima di usare un qualunque tipo non built-in devi includere l'header che lo
definisce.
-- 
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: Manuale per iniziare

Salve a tutti, come da oggetto vorrei avere un consiglio su un buon manuale
per C, visto che dopo 5 anni di Pascal, per mia curiosità e in vista di
ing.informatica, ho deciso di iniziare a programmare, in Linux, con questo
potente linguaggio. Per iniziare cercavo un qualcosa non sopra le 50 mila,
quindi nulla di particolare, ma soprattutto degli esempi; mi spiego meglio:
in rete ho trovato molti testi che spiegavano le basi della programmazione,
ma davano solo 'pezzi' di programmi, e spesso non riesco a trasferire la
teoria in pratica, non perché mi manchino le idee, ma perché alla
compilazione, l'unica linea che non presenta errori è quella d'intestazione.
Spero che mi possiate aiutare, come avete già fatto indirettamente con
questo ottimo ng, che mi sarve come ulteriore fonte di apprendimento.
Grazie
¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
Darth
http://darthpelo.cjb.net
¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤

potente linguaggio. Per iniziare cercavo un qualcosa non sopra le 50 mila,
Brian W. Kernighan - Dennis M. Ritchie, "Linguaggio C" - 46.000.
--
Andrea Laforgia (ICQ 87230455)
------------------------------ 
#exclude <windows.h>

 #exclude <windows.h>
Grazie
¤¤¤¤¤¤¤
Darth
¤¤¤¤¤¤¤

 con questo potente linguaggio.
Prova con "Tricky C" che trovi su  
http://barninga.freeweb.supereva.it/
Oppure "Linguaggio C" di Brian W.Kernighan e Dennis M.Ritchie
-- 
                                                                     __
 __                                                              _  ///
| _        Student in Computer Science, Swiss Federal Institute  \\///
|__|iambo      of Technology - mailto:
ggia...@iiic.ethz.ch
       \X/

 Oppure "Linguaggio C" di Brian W.Kernighan e Dennis M.Ritchie
Oh, ora si che ci siamo! :-)
EMG
PS. Ma come fai a metterli sullo stesso piano?

...

Newsgroup: it.comp.lang.c
Titolo: Esempio sui puntatori non funziona

Salve, sulla guida che sto seguendo ho un esempio del genere:
http://pastebin.com/f5bc27ac2
Quando vado a compilarlo, ottengo questo:
esercizio.c: In function ‘main’:
esercizio.c:8: warning: format ‘%d’ expects type ‘int’, but argument 3
has type ‘int *’
Anche in altre guide ci sono esempi del genere... a cosa è dovuto
questo problema?

 has type �int *�
Innanzitutto impara a scrivere main() con il prototipo pi� corretto. Per
stampare il valore di un puntatore devi usare lo specificatore %p, non %d.
I puntatori NON sono interi.
#include <stdio.h>
int main() {
        int alfa = 4;
        int *pointer;
        pointer = &alfa;
        printf("alfa = %d pointer = %p", alfa, pointer);
}
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Beh, vuol dire che chi ha scritto quell'esempio è alquanto confuso :-D
Grazie dell'aiuto :)

 a cosa è dovuto questo problema?
Esattamente a quanto riporta il compilatore, %d vuole un int e tu gli 
dai un (int *) 
Puoi usare l'indirezione e scrivere
printf("alfa = %d pointer = %d", alfa, *pointer);

 printf("alfa = %d pointer = %d", alfa, *pointer);
No, in questo caso il messaggio stampato sarebbe fuorviante. Dovrebbe
essere:
printf("alfa = %d *pointer = %d", alfa, *pointer);
Io invece credo che l'esempio volesse proprio mostrare il valore della
variabile puntatore, quindi bisogna cambiare specificatore: da %d a %p.


 variabile puntatore, 
Io invece l'ho inteso come un esempio sull'indirezione.

 Io invece l'ho inteso come un esempio sull'indirezione.
In ogni caso � sbagliato. Vedi messaggio precedente.


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

Mi dite da dove devo cominciare x imparare il c?
Dove posso trovare il programma?
Qual'è un sito da non perdere per uno che vuole
imparare?
Lo so che queste domande sembrano stupide e
banali...ma credetemi...non lo sono.
:-)
Mora.

banali...ma credetemi...non lo sono.
Nono, non sono banali :)
Mox :)

 Mi dite da dove devo cominciare x imparare il c?
B. Kernighan, D. Ritchie - "Linguaggio C", II edizione.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 B. Kernighan, D. Ritchie - "Linguaggio C", II edizione.
La "bibbia"? :-)
Ciao
--
Timothy Redaelli
Newsgroup: it.comp.lang.c
Titolo: libmpeg3.h .. come includerlo ?

Salve a tutti ,
vorrei iniziare ad utilizzare le librerie libmpeg3 (quelle di cinelerra) 
ma non riesco ad includerle.
Premetto che sono abbastanza niubbo della programmazione C ...
Gli header sono sotto "/usr/include/libmpeg3/" ma se cerco faccio
#include <libmpeg3/libmpeg3.h>
ottengo
libmpeg3.h: No such file or directory
se faccio invece
include "/usr/include/libmpeg3/libmpeg3.h"
ottengo
/tmp/cc2G4Jnz.o: In function `mpeg3demux_read_char':
/tmp/cc2G4Jnz.o(.text+0x4af): undefined reference to
`mpeg3demux_read_char_packet'
/tmp/cc2G4Jnz.o: In function `mpeg3demux_read_prev_char':
/tmp/cc2G4Jnz.o(.text+0x4f6): undefined reference to
`mpeg3demux_read_prev_char_packet'
collect2: ld returned 1 exit status
qualcuno saprebbe indicarmi la via per la "salvezza" ?
grazie
Arrigo "razzo"

 collect2: ld returned 1 exit status
Qui hai un problema sul *linker*, e comunque di solito il path di inclusione
viene specificato sulla riga di comando
del compilatore e non cablato nel codice.
Prova a fare
#include "libmpeg3.h"
e sulla riga di comando del compilatore aggiungi
-I/usr/include/libmpeg3
devi poi linkare alla lib e quindi aggiungi anche (supponendo che la lib si
chiama libmpeg3
-lmpeg3
devi aggiungere anche il path della libmpeg, se ricordo bene e' -L (verifica
tu),
Hope it helps,
Giovanni

 Giovanni
Grazie , mi sei stato di grande aiuto !
Effettivamente mi sono reso conto che conoscevo solo poche opzioni del
'gcc' ....  :)
ho risolto compilando con :
gcc -I/usr/include/libmpeg3 -lmpeg3 -L/usr/lib -lm -lpthread prova.c -o
prova
aggiungendo -lm e -lpthread xchè la libreria libmpeg3.so "richiede"
funzioni matematiche e thread .
grazie ancora & ciao
razzo
Newsgroup: it.comp.lang.c
Titolo: XMS!! COME ACCEDERVI?

PROGRAMMANDO IN BORLAND C++ V.3.1 COME POTREI ALLOCARE  I MIEI ARRAY NELLA
MEMORIA XMS?

MEMORIA XMS?
Non è molto difficile. Se ti interessa posso inviarti un reference sulla
XMS. Fammi sapere.
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
---------------------------------------------------------------------------

 MEMORIA XMS?
Rovistando nell' hard disk ho trovato delle di funzioni che ho scritto da
piccolo (non me ne volere per la forma) basandomi su articoli apparsi su
Computer Programming n.18 (Ottobre 1993). Spero ti possono essere utili.
Saluti, Carlo
begin 666 Xms.zip
<encoded_portion_removed>

...


l'HIMEM.SYS??!?!?!?!?!?!?!?!?!?!?
Se ti interessa sto sviluppando una classe C++ di prova e tutto mi funziona
(a parte i problemi che ho esposto nel mio recente post sul NG). Se vuoi te
la posto...
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
ICQ: 42227764
---------------------------------------------------------------------------

Magari!!!!!!!!!!!!
Grazie fin da Ora!!!
Ciao da ARTHUR!

Forse il mio messaggio è stato rimosso dal server perchè conteneva un
allegato. Se è così dimmelo che ti spedisco il file in privato.
