mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: Old style function

Ciao a tutti,
apparentemente questo codice sembra funzionare:
void funzione()
     char a, b;
     {
     /* codice a seguire */
     printf("%p, %c\n", &a, a)
     printf("%p, %c", &b, b);
     }
int main(void)
     {
      int a = 48; // o char a = 48;
      int b = 49; // o char b = 49;
      funzione(a, b);
      return 0;
      }
Ponendo le variabili a e b del main come intere ottengono il seguente
output:
8869f, 0
8869e, 1
Ponendo le variabili a e b del main come char ottengo la medesima cosa, come
č intuibile dato le promozioni di tipo effettuate.
Ma in entrambi i casi non č undefined behavior? Inoltre come puň essere
veritiero il precedente output?
Grazie, ciao


non mi sembra un output cosi scandaloso ;-) 
... hai stampato un puntatore e il carattere ascii corrispondente di
ogni variabile... cosa ti aspettavi come output?
ciao
Andrea
----
http://space.tin.it/io/andrea.fa

 veritiero il precedente output?
A parte il caso specifico, tieni conto che undefined behavior e', per
l'appunto, undefined: puo' capitarti di tutto, anche che la cosa funzioni
come uno si aspetterebbe che facesse. Il punto e' che non puoi contare su
nessun comportamento specifico, ne' che funzioni, ne' che non funzioni.
Saluti,
Lanugo


Semplicemente perché la funzione si aspetta due parametri di tipo char, che
è praticamente impossibile date le promozioni di default - in assenza di
prototipo -degli argomenti.
 Indipendentemente dal fatto che nella chiamata utilizzi due valori di tipo
char, che vengono passati come int, o due variabili intere - che in ogni
caso non è ciò che la funzione si aspetta - ho un undefined behavior.
Non so nemmeno perché il vecchio stile permettesse l'utlizzo di parametri
formali di tipo char, short int e float; essendo i medesimi inglobati nelle
promozioni di tipo quindi, sotto certi aspetti, non utilizzabili in modo
corretto.
Ciao.

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

Come mai questa funzione non fa nulla?
Come devo fare per creare una finestra e colorare un pixel?
#include <windows.h>
int main(void)
{
     /* SetPixel (handle of device context , nXPos, nYPos, colorref) */
     SetPixel(3548,200,200,155);
}
Come handle ho messo quello di una finestra (notepad) già aperta
Prima o poi ci riuscirò!
Saluti, Fulvio.

      SetPixel(3548,200,200,155);
Ho letto ora il tuo messaggio. SetPixel, come quarto parametro vuole un
COLORREF, che puoi ottenere tramite la macro RGB(red, green, blue).


 wrote in message
VzaD3.2748$Iq6....@typhoon.libero.it...


Newsgroup: it.comp.lang.c
Titolo: programmazione modulare

Scrivendo un programma su più file separati, mi sono imbattuto in
questo problema:
se devo usare una variabile dichiarata in un'altro file la dichiaro
extern. Se devo invece usare delle costanti definite con #define nel
file principale, va bene se scrivo nel mio file 
	extern const EOF;
	extern const MAX_DIM;
ecc...?
Infine, se nel file principale ho definito un nuovo tipo con typedef,
come posso fare per farmi accettare dal compilatore tale tipo anche
negli altri file?
GRAZIE PER LE EVENTUALI RISPOSTE.

GRAZIE MILLE

Newsgroup: it.comp.lang.c
Titolo: Warning in compilazione se dichiaro struttura static

Ciao a tutti, quando compilo con gcc il seguente frammento di un modulo 
C facente parte dei sorgenti di un mio programma multimodulare:
-------------------
#include "arch_voc.h"
#include "macros.h"
#include "util.h"
#include <string.h>
static struct tree_voc{
     VOCABOLO voce;                   /* chiave di ricerca */
     HANDLE hand;
     struct tree_voc *sx;             /* < */
     struct tree_voc *dx;             /* > */
}; /* questa è la linea dove viene segnalato il warning */
typedef struct tree_voc my_arch_voc;
static my_arch_voc *testa_arch_voc=NULL;       /* testa */
static HANDLE ret_han;
[CONTINUA.....]
------------------
Ottengo: "[Warning] useless keyword or type name in empty declaration" 
riguardante la linea dove chiudo la dichiarazione di struttura tree_voc.
Se tolgo "static" il warning sparisce.
Perchè ottengo warning? Per caso lo specificatore static non va 
applicato alle dichiarazioni di struttura? Come potrei fare per 
risolvere questo problema lasciando invisibile all'esterno del modulo 
questo dato di tipo struttura?
		ciao e grazie, rz
-- 
                                   /TYDIRIUM - Ferrara - ITALY\
                                   \ICQ#    13901251   !!bye!!/
"What we're seeing with Web sites that are viewable only with IE is the
privatization of the Web."        (Mitchell Baker)

Semplice, hai cannato la dichiarazione della struttura... non ho un
linux sotto ma un "info struct" c'e' il caso che ti illumini. (non uso
gcc ma non penso che sia l'unico warning che ti mostra... guarda a modo) 
Ciaoz.


 }; /* questa è la linea dove viene segnalato il warning */
Se mi rispondi a questa domanda forse ti rispondi da solo anche alla tua.
Cosa vorresti che accadesse dichiarando static quella struct ? E cosa ti
aspetti che accadrebbe non dichiarandola static ?
Ciao


Ciao, è ovvio che ti dia il warning perché sono le variabili che possono 
essere static, non le loro definizioni. La definizione della tua struct è 
comunque conosciuta a livello di modulo mentre dovrai dichiarare static la 
variabile perché questa rimanga locale al modulo. Quindi, usando il typedef:
static my_arch_voc desc_mia_struttura;
Ciao. 


		ciao e grazie, rz
P.S. Ovviamente poi ho compilato e concluso il programma togliendo 
"static" da quella dichiarazione della struttura.



	ciao e grazie ancora, rz
-- 
http://mrzac.altervista.org

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

Salve a tutti vorrei sapere per quale motivo bisogna inserire come terzo
parametro l' argv[0] ovvero il nome del programma senza l' estensione...
Inoltre, a cosa serve principalmente la spawn...()???
Grz 1000 per le eventuali risposte.
ciao

 Inoltre, a cosa serve principalmente la spawn...()???
spawn() non e' una funzione standard. Dovresti chiedere in un newsgroup 
dedicato all'ambiente Windows (it.comp.programmare.win32 direi).
Newsgroup: it.comp.lang.c
Titolo: sorgenti?

qualcuno conosce un buon sito dove trovare svariati sorgenti per C?

Ciao,
    ne trovi qualcuno nell'area Download->C/C++ di 
www.programmazione.it
A presto :-)
Marco Abis
http://www.programmazione.it
  il sito Italiano di riferimento per IT
ab...@programmazione.it
Newsgroup: it.comp.lang.c
Titolo: getch() in linux

Come posso fare ad utilizzare la getch() in gcc (linux) visto che la conio.h
non esiste +? non c'č una funzione simile?
Grazie

 Grazie
Il NG appropiato e': it.comp.os.linux.development
--
Ivan Molella
__LINUX__ the choice of the __GNU__ generation
icq# 97960484

 ha scritto nel messaggio
news:3A22B9BF...@tin.it...


 non esiste +? non c'è una funzione simile?
Mi pare sia uscita una libreria che la emula, prova a cercare su freshmeat.
-- 
Ciao, Maurizio.

Ivan Molella
Scusa l'intromissione: ho guardato la lista dei NG
ma questo non me lo segnala.   (?)
Igor Rossetti
Senjin Omukae

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

qualcuno ha gli esercizi fatti a lezione di programmazione1 sugli alberi del
prof.Tronci?
mi scuso col NG per il disturbo..

 wrote

- perche' non gli scrivi una email e non li chiedi a lui?
- perche' non vanno bene altri esercizi? gli albero di Tronci e di altri
sono sempre alberi credo....
- se tu avessi frequentato, avessi preso appunti e studiato giorno per
giorno non saresti in questa situazione, probabilmente.
Te lo dico non per essere scortese ma per esperienza personale.
- la frequenza e' importantissima
- studiare giorno per giorno e' fondamentale
- quando hai domande da fare o cose da chiedere chiedi sempre al diretto
responsabile e non ad altri.
- non studiare solo sugli appunti del prof e sui suoi esercizi, in questo
modo tendi ad imparare le cose invece di capirle+impararle. Leggi libri e
fai altri esercizi di cui alcuni dettati anche solo dalla tua stessa voglia
di capire e provare.
Ciao,
Tommy

 ha scritto nel messaggio
news:c9kl1u$62g$1...@hercules.btinternet.com...


 grazie del consiglio.
ok....
Tommy

 che al massimo ti dica che non li ha e non puo' darteli...
Ammesso che Tronci risponda alla mail :D
Comunque, sei inscritto alla mailing list degli studenti di informatica
della sapienza?
http://it.groups.yahoo.com/group/informatica_roma/
ciao
S.
Newsgroup: it.comp.lang.c
Titolo: I/O tramite Porta Seriale

Sono alla ricerca di una Funzione/Procedura che mi permetta di mandare (E
anche ricevere) dati attraverso la Porta Seriale.
(mi basta l'invio di un semplice byte e pure la ricezione)
Ho un circuito di interfacciamento simile al MAX232 e un PIC 16F84A (ne ho
anche uno 16F876), per adesso ho testato il funzionamento del programma
caricato sul PIC usando Hyper Terminal ma dovrei passare alla realizzazione
di un'applicazione molto elementare che perō dovrei compilare sotto linux.
Mi occorre dunque una funzione/procedura realizzata a BASSO LIVELLO in modo
che funzioni su qualsiasi OS.
Succesivamente poi passerō ad una spiegazione pių accurata del mio
problema...
GRAZIE !!!

 che funzioni su qualsiasi OS.
E' il BASSO LIVELLO che ti frega. A "basso livello" e' praticamente
impossibile avere qualcosa che funzioni su qualsiasi OS.
Come ti hanno detto, per mandare dati alla seriale sooto Linux basta
aprire la porta che ti interessa come un normale file e scriverci dentro.
Il problema e' che la tecnica funziona solo se sei root.
Prova anche a dare un'occhiata a Linux serial programming HOWTO
http://www.ibiblio.org/pub/Linux/docs/HOWTO/Serial-Programming-HOWTO
e a
http://www.ibiblio.org/pub/Linux/docs/HOWTO/Serial-HOWTO
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

Newsgroup: it.comp.lang.c
Titolo: RAM, interagire e visualizzare

Salve,
la premessa l'ho fatta l'altra volta quindi evito di ribadire che
sono un novizio.
Allora, la mia e' una pura curiosita', sono rimasto davvero
affascinato dalla possibilita' di poter gestire al meglio la
memoria, ora mi chiedevo se c'e' un tool, uno script, un qualcosa
insomma che qualche pazzo abbia scritto proprio per simulare il
comportamento della memoria.
Ad esempio, scrivo un programmino in C, lo compilo, lo lancio e
verifico in che modo ogni variabile o quant'atro e' posizionata
in memoria.
Verificare, che ne so, la contiguita' dei vettori, la non
contiguita' delle liste etc...
Anzitutto, e' possibile tener traccia in maniera precisa ? Ossia
sapere in ogni momento come ed in che modo la RAM e' occupata e
da chi ?
Qualora non sia possibile grazie lo stesso :)
Buonagiornata
--  
Postato da Virgilio Newsgroup: scopri i nuovi gruppi 
Eros, foto e video a 
http://newsgroup.eros.virgilio.it

 da chi ?
Certo che è possibile, qualsiasi debugger lo può fare :)

 Certo che è possibile, qualsiasi debugger lo può fare :)
AH, non lo sapevo.
vorra' che studiero' gdb, grazie.
Newsgroup: it.comp.lang.c
Titolo: switch non richiama una funzione!!!!!!!!!!

arrivo subito al dunque ho una funzione
questa è la funzione :
void trovautenti(Trubrica a[],int n)
{printf("Non ci sono utenti da cercare ");}/*provo facendo scrivere
qualcosa, senza passare i parametri, e non funziona.. passando i parametri
non funziona lo stesso*/
Trubrica è un typedef struct.....
.....
esempio in
main()
{ Trubrica  elenco[20];int n=5;
while(1)
                 {
switch(scelta)
        {
            case 1:   .........break;
            ........
        .......
            case2:   trovautenti(Trubrica a[],int n);   break;       /*non
mi richiama questa funzione ma   ripete il ciclo while*/
         }
                }
}
che succede??????''
come mai non funziona???
possibili cause???
grazie in anticipo per le risposte
ps ambiente windows xp

             case2:   trovautenti(elenco,n);   break;       /*non


 > come mai non funziona???
Secondo me scelta ha un valore non definito.
Ciao
Giuseppe

 possibili cause???
Leggi dall'input il carattere '2' (ascii 0x32) e tenti di confrontarlo
con l'intero 2 del case?
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG


scelta è un int .
.
.
quando mi chiede di inserire  scelta io inserisco 2 e invece di chiamare la
funzione mi rimanda al ciclo while

 funzione mi rimanda al ciclo while
Potresti mostrare il codice che legge "scelta" dall'input? Ad occhio
nello switch non c'e' niente che non vada.


 ha scritto nel messaggio
news:vjNmc.215127$rM4.9...@news4.tin.it...

Se riesco ad interpretare bene, allora nella variabile hai un valore 0x32
esadecimale o 50decimale.
Prova ad inserire il case "default" e fare un break del programma dentro
esso.
Non potresti far vedere dove e come fai l'input del valore ?
Ciao
Giuseppe

 -- 
grazie lo stesso ci sono riuscito
avevo fatto un errore da idiota
n=5
for (i=0;i>n;i++)//non veniva eseguito perchč i č <di n
for (i=0;i<n;i++)//cosě viene eseguito il tutto
grazie lo stesso
ciao a presto

Newsgroup: it.comp.lang.c
Titolo: [OT]Api grafiche

Salve a tutti, mi sapete dire se in C
e solo per il C ,e possibile usare delle
Api per la grafica? per creare delle
finestre /combo box ,ect, stile Winzooz?
Grazie a tutti

 finestre /combo box ,ect, stile Winzooz?
E cosa sarebbe "Winzooz"?
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 E cosa sarebbe "Winzooz"?
Tranquillo, e' solo la moda del momento. Hanno scoperto che fa molto "fico"
e "acherz" denigrare Windows.
-- 
~~~~Slaine Mc Roth~~~~
**Linux User# 312607**
Ho portato anche il cannocchiale. Vuoi vedere come si allunga?
O vuoi vedere prima il cannocchiale?  (Cinzia Otherside)

 e "acherz" denigrare Windows.
... no, quel winzooz l'ho scritto solo per scherzare ,non per denigrare.
mai ritenuto fico usare quel nomotipo, lo scrivo per ridere io più che far
ridere/
denigrare windows.non sono un "acherz"
...cmq grazie per le info.
Ciao
Newsgroup: it.comp.lang.c
Titolo: Disassembler

Ciao a tutti sapete dirmi dove posso trovare un disassembler gratuito con
tutte le istruzioni per l'istallazione?
Ho sentito parlare del Numega Soft-ice, č gratuito?
Dove lo posso trovare?
Avrei bisogno anche di un editor decimale che mi permetta di cercare
all'interno di un file una sequenza di byte.
Forse chiedo troppo?
Grazie per le vostre risposte.


No, non chiedi troppo, forse però le idee che ci si può fare su quello che 
intendi esguire con questi programmi sono un po'... particolari.
Per trovare quello che cerchi (oltre al fatto che ti sarebbe bastato 
cercarlo con qualsiasi motore di ricerca) vai a:
http://ALoR.cjb.net/
e visita la sezione "Reversing"
Ciao e buon divertimento!
-- 
Andrea Zwirner
yuppi...@yahoo.it
"Poni ciò che sei nel minimo che fai."

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

Chiedo subito scusa se ho sbagliato NG, in tal caso spero mi idiriziate
verso quello giusto, avete un esempio di programmino(il codice sorgente) per
comunicare coi modem?
Io uso VisualC e ho visto che gli esempi di comunicazione seriale
inizializzano la porta(baudrate bit di parità ecc.) e poi sparano subito i
dati, quindi vuol dire che l'handshake è già incluso nella funzione per
trasmette i dati. Io mi chiedo, che cosa occorre mandare come prima cosa per
poter intraprendere una comunicazione col modem? Una particolare stringa? Ho
provato a mandare qualche comando AT ma non ottengo nessun effetto.
Grazie!


Hai risolto il tuo problema?
Perchè è anche il mio!
Se hai info fammi sapere 
gmas...@tim.it
.
Grazie Ciao
--------------------------------
Inviato via 
http://usenet.libero.it

 ha scritto:


Newsgroup: it.comp.lang.c
Titolo: Compilare dinamicamente e staticamente

ciao a tutti
E' il mio primo post qui, e vi propongo un problemino che mi sta facendo
perdere parecchio tempo.
Devo compilare un programmino (un CGI in C) che usa le seguenti librerie:
- gd (librerie di elaborazione dell'immagine)
- jpeg (richiesta da gd)
- z (richieste da jpeg)
- m (richieste un po da tutti)
Il mio sistema e' un linux (debian woody, kernel 2.4.20, gcc 3.2), mentre il
progr deve girare su un freebds (credo 4.5, ma cmq immagino 4.x) che non ha
installate le libjpeg e le libgd, non giurerei neanche le libz (le libm
credo di si!), e non so se sono presenti le librerie di compatibilita' per
linux (ma forse, dato che gira apache, sono installata, ma e' solo una mia
deduzione, forse una vaccata)
Se compilo staticamente, il programma segmenta o qualcosa del genere (e'
un cgi-bin che devo installare su un web server di cui non ho un accesso a
livello di shell, quindi non ho l'output esatto, ma solo un generico
Internal Server Error di apache quando lo esegue). questo credo per tutte
le funzioni di i/o che sono differenti da sistema a sistema, credo solo per
questo motivo. dico bene?
Se lo compilo dinamicamente, mancano tutte le lib, quindi non puo' girare.
Come fare?
Si puo' dire al linker che alcune librerie sono da compilare
staticamente, ed altre dinamicamente?
ho provato a linkare con -static, ma mi crea un codice dinamico (??)
ho provato a linkare con -Bstatic, ma non mi trova le librerie (!?) al
momento del linking
L'ideale sarebbe qualche cmd line del tipo
ln -lm -COMPILA_STATICAMENTE_SOLO_LE_SEGUENTI -lgd -ljpeg -lz
(pero' non riesco a specificare in questo modo che le librerie standard
-da cui printf e simili- sono dinamiche, o forse lo fa gia' da se?)
Ho provato anche ad installare un freebsd 4.5 sul mio PC, e li' compilare
tutte le lib che mi servono.
Sono riuscito a compilare il tutto (sempre con gcc -c) ma non riesco a
linkare, non riesce a trovare i riferimenti delle libgd, che cmq ho
compilato ed installato.
Come ne esco senza impazzire?
Gcc puo' trasformarsi in un cross compiler per bsd?
Si puo' linkare in modo mist statico e dinamico?
Perche' il progr compilato su linux non gira sotto bsd? Vuol solo dire che
non sono state installate le librerie di compatibilita' linux sul bsd o ci
puo' essere qualcos'altro sotto?
Ovviamente il mio cgi su linux con apache funziona molto bene. 
ciao e grazie!
Marco
-- 
For direct reply: fritz AT dada DOT it

E' il mio primo post qui[...]
it.comp.os.linux.development
-- 
Andrea Laforgia
www.geocities.com/andrealaforgia
"640kb of memory should be enough for anyone." -- Bill Gates.

 it.comp.os.linux.development
messaggio recepito
spero solo che di la', dato che non riguarda solo linux ma anche freebsd,
non mi invitino qui.

Newsgroup: it.comp.lang.c
Titolo: la FERILLI per una stringa

ciao,
allora, io vi do l'indirizzo del sito con i calendari della Ferilli, Merz,
Marcuzzi,.......
se mi riuscite a risolvere un problemino che dovrebbe essere quasi banale.
Purtroppo io ho sempre programmato in Pascal e Basic.
ditemi come mai non funziona il seguente segmento di codice:
........
char nome[12];
strcpy (nome,"xxx");
.......
while (nome != "exit")
{
    .........
    scanf ("%s",nome);
    ........
}
ebbene questo ciclo non termina neanche se digito    exit     come INPUT.
GRazie.

 while (nome != "exit")
...e poi nome è un indirizzo di memoria (della casella zeresima del vettore
nome), non puoi fare un confronto tra un puntatore e un letterale di tipo
stringa. Devi usare:
    while (strcmp(nome, "exit"))
che fa quello che vuoi fare tu.


while (nome != "exit")
Non funziona perche' il controllo che tu stai facendo e' solo sui puntatori
("exit" e', a tutti gli effetti, un puntatore a stringa costante): puoi
dunque avere puntatori diversi che puntano a due stringhe uguali, nel qual
caso comunque il tuo codice non funzionerebbe. Usa strcmp, che fa il
controllo non sui puntatori, ma sulle stringhe da essi puntate.
Saluti,
    Mardy

Newsgroup: it.comp.lang.c
Titolo: Perché non funziona??

Questo programma dovrebbe trovare il punto di sella di una matrice,
cioč quell'elemento che č il massimo sulla riga e il minimo sulla colonna.
#include <stdio.h>
#define N 3
#define M 3
int main();
int i,j,k,z;
int a[N][M];
main()
{
 printf("Algoritmo per la determinazione del punto di sella di una matrice
%dx%d\n",N,M);
 for (i=0; i<=N-1; i++)
  { for (j=0; j<=M-1; j++)
   {
    printf("Inserire il valore dell'elemento %d%d ", i,j);
    scanf("%d", &a[i][j]);
   }
  }
 for (i=0; i<=N-1; i++)
  { for (j=0; j<=M-1; j++)
   { for (k=0;k<=N-1;k++)
    { if (a[i][j]>=a[i][k])
     { for (z=0;z<=M-1;z++)
      { if (a[i][j]<=a[z][j])
        printf("Il punto di sella e' l'elemento %d",a[i][j]);
      }
     }
    }
   }
  }
 return 0;
}
Grazie a chi vorrŕ aiutarmi. Sono alle prime armi!
La correzione di questo algoritmo non dovrebbe essere difficile per voi
esperti. :-))
Ciao!

 Ciao!
Quello che ho scritto non e' il massimo, ho solo cercato di interpretare
il tuo algoritmo ricalcandolo il piu' fedelmente possibile,
probabilmente non ho capito aquello che volevi fare, se ci sono errori
oppure non ho ben capito la tua soluzione send me a letter, cmque esiste
almeno un altro algoritmo piu' furbo di questo e se vuoi saro'
felicissimo di spiegarti.
spero di esserti stato di aiuto...
massi
-- 
 Massimo Narizzano          laureando in Ingegneria Informatica         
===============================================================                
(DIST)- University of Genova       phone: +39.(0)10.353-2811
 Viale Causa 13,                   E-mail: 
m...@mrg.dist.unige.it
 
 16145 Genova, ITALY
=================================================================
                     Non credete nei miracoli.....
                       contateci ciecamente.

massi
Grazie mille, mi sei stato d'aiuto. Con la tua correzione funziona.
Ciao!
Newsgroup: it.comp.lang.c
Titolo: Prima lista, può andare?

Salve a tutti, scusate se approfitto del vostro tempo, ma volevo un parere e
un consiglio.
Ho fatto un banalissimo programmino come esercizio sulle liste.
Volevo sapere se è corretto il modo che ho implementato per creare la lista.
Una volta che decido di buttare via tutta la lista basta fare un free del
primo elemento o bisogna scorrerla tutta e deallocare elemento per elemento?
Scusate se posto il codice per intero ma tanto sono poche righe.
P.S. ma in C il metodo per cancellare lo schermo non è clrscr() ?
       O Dev C++ non lo conosce o ricordo male io!!!!
#include <stdio.h>
int main(void);
void readStruct(int numRead);
void scorriLista(void);
struct ListName{
       char name[10];
       char surN[10];
       int    age  ;
       struct ListName * back;
       struct ListName * next;
} *ln,*first;
int main(void){
    readStruct(3);
    scorriLista();
    free(ln);
    return 0;
}
void scorriLista(void){
     char cmd = ' ';
     ln = first;
     printf("Legend :\n    a = Back\n    s = Next\n    e = Exit");
     while(cmd!='e'){
        printf("\n\nNome Utente = %s",ln->name);
        printf("\nCognome Utente = %s",ln->surN);
        printf("\nEtà Utente = %d",ln->age);
        printf("\n");
        cmd = getch();
        if(cmd == 'a'){
               if(ln->back != NULL)
                           ln = ln->back;
        }else if(cmd == 's'){
              if(ln->next != NULL)
                           ln = ln->next;
        }
     }
}
void readStruct(int numRead){
     struct ListName * sup = NULL;
     first = NULL;
     while(numRead--){
        sup = ln;
        // Perchè se uso calloc, la prima volta funziona a dovere
        // e la seconda blocca? Secondo me Dev ha qualche problemino.
            ln = (struct ListName *)malloc(sizeof(struct ListName));
            memset(ln,0x0,sizeof(struct ListName));
        if(first == NULL)
               first = ln;
        else{
             ln->back = sup;
             sup->next = ln;
        }
        printf("Nome Utente = ");
        scanf("%s",ln->name);
        printf("\n");
        printf("Cognome Utente = ");
        scanf("%s",ln->surN);
        printf("\n");
        printf("Eta' Utente = ");
        scanf("%d",&ln->age);
        printf("\n");
     }
}
Scusate del post un pochino lungo, ma è dura ricominciare e capire se si sta
imboccando la strada giusta, adesso è fondamentale.

             ln = (struct ListName *)malloc(sizeof(struct ListName));
togli il cast e fai il controllo sul valore di ritorno.
-- 
ciao,
     Giuseppe

 >             ln = (struct ListName *)malloc(sizeof(struct ListName));
Purtroppo su Dev C++ sono costretto a farlo, mi da errore se lo ometto. Dice
che da malloc torna un puntatore int e che va castato.

Per il resto la struttura con la quale creo la lista, può andare o c'è di
meglio?

         scanf("%s",ln->name);
Se non sbaglio la scanf non toglie il return dal buffer di input,
quindi dopo dovrebbe essere seguita da un while (getchar !='\n') ; .
-- 
Il segreto di una vita sana e' lo sport.
Mai farne.

 	        first->next = NULL ;
		first->back = NULL ;

Newsgroup: it.comp.lang.c
Titolo: Convertitore Matlab

Mi trovo davanti ad un piccolo problema: devo realizzare un software per
elaborare grosse moli di dati (come matrici di elevate dimensioni) ed in
più ho bisogno di un supporto matematico molto spinto. Dovendo
implementare il tutto in un programma con interfacce grafiche (sotto
Windows), ho pensato che una soluzione potesse essere quella di
realizzare le routine matematiche in Matlab per poi convertirle con
Matlab Compiler in linguaggio c/c++. E' efficiente tale compilatore? Mi
consigliate una strada alternativa?
Grazie.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 consigliate una strada alternativa?
in C++ c'è octave (che è un matlab gpl) che mette a disposizione una
libreria. Ad essere sincero, ho provato a guardarla una volta e non ci ho
capito molto....
Newsgroup: it.comp.lang.c
Titolo: ritardo stampa su video

Ciao a tutti,
come posso fare per stampare a video dieci numeri con un ciclo for
ritardando la visualizzazione di n secondi?
grazie e ciao
mirko
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ritardando la visualizzazione di n secondi?
In modo standard non e' possibile. Se sei sotto Unix man 3 sleep(),
sotto Windows Sleep().
C:\>iao Angelo


> sotto Windows Sleep().
Ciao Angelo,
grazie per la gentile risposta.
In effetti sotto win ho provato e funziona.
ma se usassi TurboC sotto DOS solamente?
cosa devo "includere"?
grazie e ciao.
mirko



dos.h
funzione: delay(n); dove n indica i millisecondi
Newsgroup: it.comp.lang.c
Titolo: possibilita

ciao, 
    sono un po' arrugginito col C++ e la logica (non che quando ero in
allenamento fossi un maestro) ma avrei bisogno per lavoro di un
algoritmino che mi permetta di fare tutte le permutazioni tra 8 oggetti
che possono avere solo 2 condizioni (TRUE/FALSE).
del tipo
OGG1 OGG2 OGG3 OGG4 ...
TRUE TRUE TRUE TRUE ...
TRUE TRUE TRUE FALSE ...
TRUE TRUE FALSE FALSE...
TRUE TRUE TRUE FALSE...
ecc...
grazie e ciao,
             Enrico B.A.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

>     sono un po' arrugginito col C++ e la logica (non che quando ero in
questo è un ng di c...
cmq è abb uguale..
for (i=0;i<256;i++)
{
    k=i;
    // permutazione i
    for (j=7;j>=0;j--)
    {
        if (k>=pow(2,j))
        {
//            condizione obj[j] della permutazione i vera
                k-=pow(2,j);
        }
        else
        {
//            condizione obj[j] della permutazione i falsa
        }
    }
}
dovrebbe funziare... (ma non ne sono sicuro.. :P )
poi ci saranno anche mille altri metodi...
cya'
Fra
Newsgroup: it.comp.lang.c
Titolo: Allocazione dinamica di stringhe di caratteri memorizzate in un vettore di stringhe!

Salve a tutti,
sto cercando disperatamente di creare un paio di funzioni (una get e una
add) per gestire una variabile "char ** ".
Vorrei insomma crearmi due funzioni che mi permettano di gestire questo
oggetto in maniera corretta una volta per tutte ma i miei tentativi di
allocazione dinamica della memoria si scontrano con un assert in fase di
debug che non so risolvere. Magari sbaglio proprio l'impostazione della
funzione... se qualcuno sa darmi un consiglio.....ecco il codice della "set"
(per ora sarebbe sufficiente far funzionare questa):
int addString(char * array[], char * newstring, int * counter)
{
 int ret=0;
 int pos=0;
 size_t oldArraySize=0;
 size_t oldArraySizeByCounter=0;
 size_t newArraySize=0;
 size_t stringSize=0;
 char * tmp;
 pos=*counter;
 if (pos < 0)
  return ERR_INVALID_ARRAY_DIMENSION;
 oldArraySize=sizeof(*array);
 oldArraySizeByCounter= (pos + 1) * sizeof (char *);
 stringSize=sizeof(newstring);
 if (oldArraySize != oldArraySizeByCounter)    //questo solo per avere
un'ulteriore conferma del valore di "counter" passato alla funzione
  return ERR_INVALID_ARRAY_DIMENSION;
 newArraySize=oldArraySize + sizeof(char *);    //calcolo nuova dimensione
dell'array di puntatori a caratteri
//QUI HO L'ASSERT IN FASE DI DEBUG
 array=(char **)realloc(array,newArraySize);     //realloco l'array di
puntatori a carattere
 array[pos++]=newstring;                                  //memorizzo la
nuova stringa alla posizione "pos"
 *counter=pos;
 return ret;
}
Vi riporto anche il commento alla funzione che lancia l'assert nel file
dbgheap.c
/*
         * If this ASSERT fails, a bad pointer has been passed in. It may be
         * totally bogus, or it may have been allocated from another heap.
         * The pointer MUST come from the 'local' heap.
         */
        _ASSERTE(_CrtIsValidHeapPointer(pUserData));
Compilo con VC++6.0!
--
Bye
Johnny
http://digilander.iol.it/Superpork

 ha scritto nel messaggio
news:CvX48.16425$761.5...@twister1.libero.it...


 ha scritto nel messaggio
news:YAX48.16451$761.5...@twister1.libero.it...


Newsgroup: it.comp.lang.c
Titolo: scambiare file via internet

vorrei realizzare un programma per poter scambiare file fra 2 pc.Come
faccio per ottimizzare lo scambio dati?
Grazie


http://www.kyuzz.org/antirez
finger 
ant...@tella.alicom.com
 for PGP key
28 52 F5 4A 49 65 34 29 - 1D 1B F6 DA 24 C7 12 BF

pensavo di leggere n bytes di dati in binario con fread e spedirli con
la send...
non so quale sia il valore ottimale per n e quale sia la frequenza di
invio dei pacchetti di dati(ovviamente quest'ultimo dato dipende dalla
velocità della connessione)
Avevo pensato di spedire un pacchetto,attendere il segnale di pacchetto
ricevuto ed inviare il pacchetto successivo,ma questo rallenta
notevolmnte lo scambio.
Suggerimenti?


wrote:

dipende dal protocolllo e cmq sei OT :)
-- 
Lawrence "Rhymes" Oluyede (
rhy...@myself.com
)
"Per cambiare, per diventare un'altra
cosa dobbiamo prima sapere cosa siamo"
(Bruce Lee)
Newsgroup: it.comp.lang.c
Titolo: STRUCT inizializzazione di...

Salve a tutti
devo creare sto db grande N elementi come si puo' fare con
un'impostazione del genere??
Non capisco come fare....
typedef struct 
  {
   char titolo[80];
   char autore[80];
   char editore[80];
   int anno;
  }
  datilibri;
typedef struct databaseModello
  {
   datilibri **arrayLIBRI;
   int dimensione;
   int primalibera;
   }
  *databaseLIBRI;
databaseLIBRI makedatabase(int n)
{
 int *v;
 if (n!=0)
 {
  v=(int*)malloc(n*sizeof(int));
 
 //come faccio a questo punto a inizializzare arrayLIBRI grande "n"???
 
 }
 else
 return NULL;
}

 }
Beh, dovrai intanto dichiarare un oggetto del tipo database
databaseLIBRI scaffale;
poi, siccome l'hai dichiarato come puntatore, devi allocare memoria
scaffale = (databaseLIBRI) malloc(sizeof(struct databaseModello));
quindi allochi memoria per l'array di libri
scaffale->datilibri = (datilibri *) malloc(n * sizeof(datilibri));
Spero di non aver fatto casino coi tipi, comunque i passi dovrebbero essere
piu' o meno quelli.
Ciao,
Ema

GRAZIE EMA
alla prox

Newsgroup: it.comp.lang.c
Titolo: Problema con system su Linux

Ciao, sono alle prime armi e vorrei sapere
qual'è l'approccio migliore per simulare
i comandi di un utente sh o bash che installa
una serie di sorgenti.
( tutto questo per scrivere una procedura
automatica d'installazione che scompatti e compili
una serie di sorgenti ... )
Per esempio: mettiamo che il programma risieda
in /root
e i sorgenti in /usr/src
come devo comportarmi con la system?
es:
sprintf(comando,"perl %srazor-agents-sdk/Makefile.PL);
system(comando);
oppure devo spostarmi con cd ...? sprintf(comando,"cd /percorso perl
Makefile.PL);
Perdonatemi nel caso sia stato poco chiaro.
Grazie mille
                                -- Yena --

 Makefile.PL);
Questo non funiona sia per i motivi di prima, sia perche' una volta
eseguito il cd la shell che ha eseguito il comando e' defunta e
ti trovi esattamente al punto di partenza e Makefile.PL non viene
trovato.
In ogni caso queste sono da it.comp.linux.{iniziare, development}
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 system("comando da eseguire completo di path e parametri");
Non è quello che indendeva Yena...
per esempio se lancio
"/usr/src/daemon/package/install" [x installare i DaemonTools]
e sono in un altra dir, la procedura di installazione mi restituisce degli
errori
perchè è stata pensata per essere lanciata dalla di dove risiede la cartella
"package".
Il problema è "simulare" un cambio della directory tipo un "cd" ma facendo
una system con:
...
             sprintf(comando,"%s%spackage/compile",ABS_PATH,log[0]);
             system(comando);
...
dove ABS_PATH è il path assoluto [/usr/src/] e log[0] = "daemon/", non
funziona.
Non funziona nemmeno:
...
             sprintf(comando,"cd %s%s; package/compile",ABS_PATH,log[0]);
             system(comando);
...
Grazie dell'attenzione
-- 
Ciao da
       --§Ska-Man§--
[
ska...@despammed.com
]
----------------------
http://www.fantabasketpro.net
http://www.birraesalsiccia.net
----------------------------------------------------------------------------
----
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (
http://www.grisoft.com
).
Version: 6.0.663 / Virus Database: 426 - Release Date: 20/04/2004

 funziona.
Infatti. Se il comando deve essere invocato nella directory
dove e memorizzato prima e' necessario cambiare directory
corrente che non mi risulta si possa fare usando il "C"
standard. Io conosco chdir() e setCurrentDirectory(), ma
nessuna delle due fa parte dello standard del "C".
Da qui l'invito a rivolgervi ad un ng dedicato allo sviluppo
di Linux.
HTH
C:\>iao Angelo
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Inviato via 
http://arianna.libero.it/usenet/

Newsgroup: it.comp.lang.c
Titolo: [REQ]URL

Ciao a tutti,
avrei bisogno di conoscere l'indirizzo del
sito in cui sono riportate le soluzioni agli
esercizi proposti dal K & R.
Grazie
-- 
=======================
sore...@tiscalinet.it
sorenzo@.
ztin.it
remove ".z" for mail
#uin licq 12113040
=======================

 Grazie
Ciao,
 ti riferisci a qualche testo in particolare? Se per K & R intendi lo
standard di linguaggio c diffuso prima dell'ANSI, la tua domanda è troppo
generica, dato che ad un linguaggio di programmazione possono essere
associati un numero praticamente infinito di problemi e soluzioni, e quindi
di esercizi. Cosa vorresti sapere di preciso?


Prova questo:
http://users.powernet.co.uk/eton/kandr2/
Maurus

 Maurus
non sapevo che ci fosse un testo così specifico. Un grazie anche da parte
mia.

 di esercizi. Cosa vorresti sapere di preciso?
Chiaramente si riferiva al libro Il linguaggio C di K&R. Purtroppo non
so dove sono le soluzioni agli esercizi. Hai provato a fare una ricerca
in rete?
EMG
Newsgroup: it.comp.lang.c
Titolo: porte seriali(termios.h)

Salve,
sto provando a leggere i dati da una seriale....
Ho sottomano 'Serial Programming HOWTO'
quando cerco di cancellare la struttura associata alla porta seriale
bzero (&newtio, sizeof(newtio));
il compilatore (kdevelop 2.1) mi risponde con:
main.cpp:54: 'bzero' undeclared (first use this function)
main.cpp:54: (Each undeclared identifier is reported only once for each)
ho incluso i seguenti header
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h>
#include <stdio.h>
grazie per l'attenzione
p.s. : qualcuno sa dirmi dove posso trovare una descrizione di queste 
librerie? (magari in italiano :-))

OK
#include <strings.h>

#include <strings.h>
consiglierei di usare memset

Newsgroup: it.comp.lang.c
Titolo: Altro problema su fflush()

Ciao a tutti,
letto e riletto non ho trovato una soluzione a questo problema (sempre che
esista!)
il problema è questo:
sto facendo un programma che lancia una macchina uml (user mode linux) e
invia dei comandi alla shell leggendo il relativo output.
Nel programma c creo 2 pipe e passo alla macchina uml (lanciata con un
exec) 2 estremi delle 2 pipe (1 per leggere e una per scrivere).
Il problema sorge da parte del processo c che cerca di leggere quello che
gli invia la shell di uml;in particolare tutto va bene finchè la macchina
uml non scrive una riga senza il \n finale.Questa riga rimane nel buffer
finche' non gli invio un comando.Quello che a me servirebbe sarebbe
scaricare il buffer in modo da ricevere dalla macchina uml anche il prompt
di "bash pronta", ovvero mi piacerebbe che uml flushasse ogni volta che
scrive nella pipe, ma d'altronde ho il vincolo di non modificare il codice
uml.
avete in mente una soluzione per la questione?
grazie
Fabio



riposto la soluzione eventualmente possa interessare a qualcuno,in pratica
ho risolto rendendo lo stream associato al fd unbufferizzato con
setbuf(stream,NULL)
cosi' tutto va alla meraviglia,
se avete soluzioni alternative sono comunque interessato
Ciao
Fabio
Newsgroup: it.comp.lang.c
Titolo: OT libri informatica vendo

Ciao Ragazzi
vendo i seguenti libri (comprati nuovi e in ottimo stato)
- Informatica arte e mestiere - 3 ed. Mcgrawhill 20,00 euro
- Thinking in Java volume 1 i fondamenti, 4 ed. Pearson 20,00 euro
- Corso completo di programmazone in C, ed. Deitel & Deitel 20,00 euro
- Sistemi di elaborazione delle informazioni, ed. Franco Angeli 20,00 euro
- Ingegneria del Software ed Sommerville 25,00 euro
- Java 2 i fondamenti , ed. Sun 20,00 euro
- Dialetto,dialetti e italiano, Marcato 9,00 euro
per le spese di spedizione (metodo PIEGO DI LIBRI delle POSTE ITALIA)
le tariffe sono le seguenti:
Ordinario fino a 2 kg 1,20 euro
Ordinario oltre 2 kg a 5 kg 3,90 euro
buona giornata
Antonio

 vendo i seguenti libri (comprati nuovi e in ottimo stato)
[CUT]
regalali ad una qualche biblioteca.
Ciao Jack


quando avro' terminato gli studi, potro' fare beneficienza...

Newsgroup: it.comp.lang.c
Titolo: Cerco siti con tutorial programmazione in C

Ciao,
Dove posso trovare siti per imparare a programmare in C sui sistemi
operativi DOS, Windows, Linux.
Grazie per le eventuali risposte.
8<---------------------------------------------------->8
                     -=- MaX -=-

                      -=- MaX -=-
Per imparare a programmare in C, e' necessario studiare un manuale di C, come
per eesempio il Kernigham & Ritchie ed. 2, Il Linguaggio C. In seconda
battuta puo' essere utile avere la documentazione del compilatore usato.
Questa di dolito viene con il compilatore. E' solo in ultima istanza che vi
possono essere alcuni aspetti propri del sistema operativo, Questi, piu' che
la programmazione, riguardano l'ambiente di programmazione: come compilare,
come linkare le librerie e sono di solito descritti nei manuali del sistema
operativo. Ciao Paolo
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/
       Search, Read, Discuss, or Start Your Own    

Su 
http://www.games.eden.it/thecodersprimer
 trovi un buon tutorial C, uno
C++, e tante altre informazioni. Metti un link alla nostra Homepage,  e
diffondi il nostro indirizzo se ti sembra utile il nostro lavoro (gratis, lo
ricordiamo)!!!

Newsgroup: it.comp.lang.c
Titolo: System ("PAUSE"); o getch(); ?

Al termine di un programma C proprio prima del return solitamente
mettevo system ("PAUSE"); per far apparire la finestra dos sotto
windows senza che essa scompariva dopo l'esecuzione del programma. Ora
ho scoperto che invece va utilizzato getch(); dato che fa parte della
libreria stdio.h
č vero?
grazie!

 # vero?
getch() non e' standard!
forse ti riferisci a getc(), o forse a getchar() ?
(questo almeno secondo il C89)
Tommy
Newsgroup: it.comp.lang.c
Titolo: Problema con una matrice

Ho una matrice di r righe e c colonne.
Ho un vettore valore_medio[] cosi' formato:
valore_medio[0] valore medio della 1^ riga
valore_medio[1] valore medio della 2^ riga
...
valore_massimo[], invece contiene i valori
più grandi di ciascuna riga
valore_massimo[0] valore massimo della 1^ riga
valore_massimo[1] valore massimo della 2^ riga
...
Per popolare valore_medio[] e valore_massimo[]
uso questo ciclo:
  for (i=0; i<r; i++)
      {
          valore_medio[i] = media (&mat[0][0]+(i*c)+1, c);
          valore_massimo[i] = max (&mat[0][0]+(i*c)+1, c);
      }
Ecco le funzioni media() e max()
double media (const double* vet, int riemp)
{
	int k; /* contatore di ciclo */
	double somma = 0;
 
	for (k=0; k<riemp; k++)
	{
		somma = somma + *(vet+k) ;
	}
	return (somma / riemp);
}
double min (const double* vet, int riemp)
{
        int k; /* contatore di ciclo */
        double min = *(vet);  /* ...ovvero vet[0] */
        k=1;
        while (k<riemp)
        {
            if ( *(vet+k) < min )
               min = *(vet+k);
            k+=1;
        }
        return min;
}
double max (const double* vet, int riemp)
{
        int k; /* contatore di ciclo */
        double max = *(vet);
        k=1;
        while (k<riemp)
        {
            if ( *(vet+k) > max )
               max = *(vet+k);
            k+=1;
        }
        return max;
}
Il programma viene compilato correttamente
ma i risultati non sono quelli attesi
(come se venisse acquisita solo la I riga).
Qualche aiuto? Grazie.

Non cercare di fare le cose complicate, lascia fare al processore tutti
gli indirizzamenti necessari. Non fare cose del genere:
(&mat[0][0]+(i*c)+1
se devi passare un double *, ma semplicemente:
mat[i];
Ho riscritto il tuo codice, cercando di semplificare. Non dico che il
mio è necessariamente migliore, ma hai mai sentito parlare di KISS?
#include <stdio.h>
#include <stdlib.h>
#define MAX 3
#define MAX 3
double max(double *a, int n) {
	double max = 0.0;
	int i;
	for (i = 0; i < n; i++)
		if (a[i] > max) max = a[i];
	return max;
}
double media(double *a, int n) {
	double sum = 0.0;
	int i;
	for (i = 0; i < n; i++)
		sum += a[i];
	return sum / n;
}
int main(int argc, char **argv) {
	double m[MAX][MAX] = {
		{1.0, 2.0, 3.0},
		{4.0, 5.0, 6.0},
		{7.0, 8.0, 9.0}
	};
	double val_massimo[MAX], val_medio[MAX];
	int i;
	for (i = 0; i < MAX; i++) {
		val_massimo[i] = max(m[i], MAX);
		val_medio[i] = media(m[i], MAX);
	}
	for (i = 0; i < MAX; i++)
		printf("%f %f\n", val_massimo[i], val_medio[i]);
	return 0;
}

 gli indirizzamenti necessari.
Ok grazie.
Newsgroup: it.comp.lang.c
Titolo: Problemino...

Ciao a tutti...
ho un piccolo problemino... da poco ho cominciato a scrivere piccoli
programmini in C sotto Linux...quando sono nella veste grafica non riesco a
fare { e } come si fanno???
Grazie anticipatamente...
Ciao
    Lord Spawn


Usa opengl. ;)

{  ->   ALT+123
}  -> ALT+125
byez ;-)
NIck

 programmini in C sotto Linux...quando sono nella veste grafica non riesco
sei OT: la prox volta vai su it.comp.os.linux.iniziare...
comunque la sintassi corretta č 
{       AltGr-7
[       AltGr-8
]       AltGr-9
}       AltGr-0
~       AltGr-ě

Newsgroup: it.comp.lang.c
Titolo: compile error

     ------ Build DebugRel variant ------
Information:  "C:\SIMPWINS\Desktop\FS44B0X_V16\fs_bios44b0\20045BIOS.apj";
Executing 'Link'
               because '20045BIOS.axf' doesn't exist yet
armlink -o
C:\SIMPWINS\Desktop\FS44B0X_V16\fs_bios44b0\DebugRel\20045BIOS.axf  <-----
this one I do not understand
        C:\SIMPWINS\Desktop\FS44B0X_V16\fs_bios44b0\DebugRel\main.o
Error:        armlink... Undefined symbol 'getch', referred to from
               C:\SIMPWINS\Desktop\FS44B0X_V16\fs_bios44b0\DebugRel\main.o.
Error:        armlink... Undefined symbol 'kbhit', referred to from
               C:\SIMPWINS\Desktop\FS44B0X_V16\fs_bios44b0\DebugRel\main.o.
Error:        armlink... Undefined symbol 'getkey', referred to from
               C:\SIMPWINS\Desktop\FS44B0X_V16\fs_bios44b0\DebugRel\main.o.
Error:        armlink... Undefined symbol 'putch', referred to from
               C:\SIMPWINS\Desktop\FS44B0X_V16\fs_bios44b0\DebugRel\main.o.
why 20045BIOX.axf is causing the problem?

 why 20045BIOX.axf is causing the problem?
functions reported are not "C" standard functions, your compiler
doesn't support them and linker complains about their absence.
HTH
C:\>iao Angelo
P.S. This is an Italian NG, official language is Italian.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 doesn't support them and linker complains about their absence.
how to correct this?
I am using  arm project manager for windows V 2.51.


 
Non conosco questo ambiente di sviluppo.
As stated in my previous post, this is an Italian NG and Official
language is _ITALIAN_
This NS talks about STANDARD "C" (not related to a particular OS or
a particular compiler).
Your language isn't appropriate and your question is Off Topic.
If you want an answer in English, please write in an English NG or
send me a mail: my e-mail address is correct.
In subject insert
[iclc question]
because this m-box is subject to an high volume of spam and I usually
delete e-mails without reading it.
HTH
C:\>iao Angelo

Newsgroup: it.comp.lang.c
Titolo: Programma per calcolare i numeri primi che non và

Il programma deve fare un compito banale, ma non lo riesce a fare come deve.
Il problema è che introducendo certi numeri (solo alcuni tipo il 9997), non li
prende bene (il 9997 lo prende come 9996).
Ho capito che il problema deve essere su un'arrotondamento che fà la macchina 
sui float che uso come contenitori del numero intero che introduco, ma perchè
lo fà?
Ecco il codice con la parte critica commentata:
main()
{
 int n,j,u,c=0;
 int primi[100];
 int y=0;
 float f,e;
 printf("Dammi numero da scomporre in numeri primi\n");
 for(e=1;isdigit((j=getchar()));e*=10.0)
 f+=(j-'0')/e;            
 n= (int)(f*e/10);     /*Il problema è qui */   
 printf("%d\n",n);      /* L'ho messo come controllo sul numero introdotto */
 while(n!=1)
   {
    for(y=2;(n%y)!=0;y++)
     ;
    primi[c++]=y; 
    n/=y;   
   }
 primi[c]=-1;
 for (u=0;primi[u]!=-1;u++)
 printf("Numeri primi: %d \n",primi[u]);
}

lo fà?
Si', e' un fenomeno chiamato "round-off".
Un numero intero calcolato con il metodo del tuo programma non e'
rappresentabile in modo esatto.
Il numero 9997 sulla mia macchina viene rappresentato come
9996.9997...
e quando si compie il cast (int) viene troncato a 9996.
La versione corretta del programma e' la seguente :
#include <stdio.h>
int main()
{
    int n, u, y = 0, c = 0 ;
    int primi[ 100 ] ;
 
    printf("Dammi numero da scomporre in numeri primi\n");
    scanf ( "%d", &n ) ;
 
    while ( n != 1 )
    {
         for( y = 2 ; ( n % y ) != 0 ; y++ )
            ;
         primi[ c++ ] = y ;
         n /= y ;
    }
    primi [ c ] = -1 ;
    for ( u = 0 ; primi[ u ] != -1 ; u++)
        printf("Numeri primi: %d \n",primi[u]);
 
    return 0 ;
}

Newsgroup: it.comp.lang.c
Titolo: SHELL IN C

Ciao a tutti,
devo realizzare un shell funzionante in ambiente linux, mi è stato
detto esiste una libreria C che permette di gestire il tasto tab per
il completamento automatco, cosi come le freccie su e giu per
l'history.
Sapete dirmi di che libreria si tratta???
Grazie.
Alessandro


libreadline
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >