mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: Problema fflush su stdin

Salve ragazzi..
sono incappato su un problema stranissimo.. non vi pasto tutto il 
programma ma solo la funzione che riguarda il problema. Sto sviluppando 
un giochino.. e per questo mi serviva getch() perchč non č bufferizzato.. :
...
void partita() {
  char buffer;
   ...
   grafica(1);
   fflush(stdin);
   buffer=getch();
   switch (buffer) {
   ...
   case 27:
   exit(0);
   break;
...
grafica() č una funzione che visualizza per circa 5 secondi uno schemino 
in ascii.. il problema č questo.. se in questi 5 secondi premo il tasto 
Esc (per uscire dal gioco, codice ascii 27) il gioco mi esce.. ma questo 
teoricamente non dovrebbe avvenire.. perchč dopo la funzione grafica(1) 
fflush(stdin) dovrebbe pulire il flusso stdin da tutti i caratteri 
immessi durante lo svolgimento della funzione grafica().. (all'interno 
di questa funzione ci sono solo funzioni printf per visualizzare lo 
schemino.. nient'altro..), come posso risolvere questo problema? č 
normale? fflush mi ha sempre funzionato.. tranne in questo caso..
Grazie in anticipo!
Marco

 normale? fflush mi ha sempre funzionato.. tranne in questo caso..
fflush() non e' definita per gli stream di input, quindi, teoricamente,
non puoi usarla con stdin come argomento, ma solo con uno stream di
output.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 output.
 
ma a me ha sempre funzionato anche per il flusso stdin.. e il manuale del
C consiglia l'utilizzo di fflush() per pulire stdin da i char in + rimasti in
attesa di scanf..

attesa di scanf..
Male, che manuale è?
-- 
Marco Barisione (ICQ 84277092)



Programmare in C di Peter Aitken..un libro di me**a..
si cmq ho cercato un pò su google.. ed ho fatto un pò di prove, avete
ragione, fflush non pulisce stdin.. volevo farmi una funzione con gets che mi
pulisce il buffer.. ma non posso perchè getch non è bufferizzato
e quindi non usa il \n, e gets lo richiede.. come potrei fare per pulire
il buffer? c'è una funzione apposita? e se non c'è come potrei farla?
grazie ancora!

 wrote in
news:pan.2002.05.29.11...@spam.it
: 

ma è quello dell'apogeo? Aitken/jones Programmare in C?



si..

andare o non andare.
Puntualizza: ogni manuale puo' fare quello che vuole per gli aspetti
definiti Undefined Behaviour, come appunto fflush sugli stream di
input, lo standard lo deve comunque rispettare se vuole essere
definito compilatore C :)
-- 
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: TurboC

Sapete dirmi dove poter scaricare il turboC,
Grazie.


 
http://www.borland.com/bcppbuilder/freecompiler/cppc55steps.html

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

Qualcuno ha per caso qualche programmino che chiede una parola da tastiera e
stampa tutti i possobili anagrammi????
Se poi li stampa in ordine alfabetico e' ancora meglio!
Grazie

Piero wrote:

se te lo faccio quanto mi dai...? ;-)

Vi prego aiutatemi!!!!

Se poi li stampa in ordine alfabetico e' ancora meglio!
Usando la ricorsione, puoi realizzarlo senza troppa fatica, senza
evitare le ripetizioni. Per evitare le ripetizioni devi essere un pò
più astuto, ma... se pò fà... ;-)
-- 
Cordiali saluti
  Artemio

 ha scritto nel messaggio
news:vlv7fucji67tshrfm...@4ax.com...


 tastiera e stampa tutti i possobili anagrammi????
Non e`  difficile. Puoi usare  una funzione ricorsiva,  che di  volta in
volta elimina i caratteri gia` usati:
/* Non testato */
void anag (char *todo, char *str, int l, int r) {
/*      todo: caratteri ancora da anagrammare
        str:  stringa anagrammata in costruzione
        l:    lunghezza
        r:    caratteri rimanenti
*/
        char buff[MAX_SIZE];
        int i;
        if (r == 0) {
                *str = '\0';
                printf("%s\n", str - l);
                return;
        }
        for (i = 0; i < l; i++) {
                /* Ripristino la stringa */
                memcpy(buff, todo, l);
                if (buff[c] == 0)
                        continue;
                *str = buff[c];
                /* Elimino un carattere */
                buff[c] = 0;
 
                anag(buff, str + 1, l, r - 1);
        }
}
Puoi chiamrala cosi`:
char str[MAX_SIZE];
char buff[MAX_SIZE];
fgets(str, MAX_SIZE, stdin);
anag(str, buff, strlen(str), strlen(str));
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Mi piace avere amici rispettabili;
Mi piace essere il peggiore della compagnia.

se e' cosi semplice puoi suggerirmelo....tante grazie!!
Kronos ti ha già risposto. ;-)
-- 
Cordiali saluti
  Artemio
Newsgroup: it.comp.lang.c
Titolo: aiuto

Salve,
sto facendo un progetto in C sulle funzioni hash perfette(OPMPHF)
e devo calcolare, una volta lanciato il programma, il tempo di 
generazione dell' algoritmo.
Soltanto che non riesco a trovare un modo per farmi avere sullo
stdout il tempo totale di esecuzione.
Ho gia' provato con i vari time(), difftime(), ma non ci sono riuscito.
Come posso fare ?
Qualcuno di voi sa come fare?
Perche' penso proprio che alla fine sia una cazzata...cazzata che non
riesco a risolvere.
Grazie anticipato a chi mi aiutera'
					Matteo Palumbo
			       	    < 
pal...@cs.unibo.it
 >

Qualcuno di voi sa come fare?
Il fatto e' che difftime() restituisce un valore in secondi, che
potrebbe essere un'unita' di misura troppo ampia per la misurazione
dei tempi di un algoritmo.
Allora, non potendo ridurre l'unita' di tempo, aumenta il tempo di
esecuzione, magari lanciando 1000 volte lo stesso algoritmo e
calcolando il tempo di esecuzione medio.
Per esempio, con il seguente codice riesco a calcolare sulla mia
macchina che un loop di 100 iterazioni nulle avviene in 0.0004
secondi.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main()
{
    long i, j, time1, time2 ;
    double m = 0.0 ;
    for ( j = 0 ; j <= 99999 ; j++ )
    {
        time1 = time ( NULL ) ;
        for ( i = 0 ; i <= 99 ; i++ ) ;
        time2 = time ( NULL ) ;
        m += difftime ( time2, time1 ) ;
    }
    m /= 100000.0 ;
    printf ( "%f\n", m ) ;
    return 0 ;
}


ICQ #34602650

 Matteo Palumbo
Prego.
Ciao
    Beppe

secondi.
Chiedo scusa : il programma non e' affatto affidabile ;)
Mi sono accorto di una grossa cazzata ! ;) eheheh...

 costante).
La funzione clock() torna i clock utilizzati, quindi per ottenere i
secondi devi fare clocks/CLOCKS_PER_SEC (una moltiplicazione e non una
divisione ;-) ).
Ciao, Luca.
-- 
*******************************************************
       "Dio non e' morto.
        E' vivo e sta lavorando
        a un progetto
        meno ambizioso"
				    graffito anonimo
  Reply to 
bia...@maganet.net
*******************************************************
Newsgroup: it.comp.lang.c
Titolo: typedef e struct

buonasera
spesso nei tutorial sui record definita una struct si ridefinisce un 
nuovo tipo con typedef partendo dalla struct...
a parte la comodità di avere un nuovo tipo quale altro "beneficio" 
comporta il typedef della struct?
grazie


nessuno, anzi, a volte personalmente lo trovo scomodo :)
Ciao!

 scomodo :)
non volevo dirlo ma a 'sto punto faccio outing pure
io :D
-- 
http://www.youtube.com/watch?v=N2ENwokc6bs&feature=related
http://www.youtube.com/watch?v=H7GBSeBffnM

Newsgroup: it.comp.lang.c
Titolo: Stampare intero a 16bit da un array di bit

Ciao a tutti,ho un'applicazione che mi manda un messaggio cosi
composto (vi indico all'interno dell'array le posizioni occupate da
ogni dato) tramite stream TCP:
msg[0]: un char (che non mi interessa)
msg[1-4]: un int che vorrei stampare
msg[5-6]: uno short int che vorrei stampare
Per ora riesco sempre e solo a stampare la prima posizione di questi
dati, percio' per puro caso l'int in posizione 1-4 (essendo in
littleendian)
mi viene stampato correttamente (e' infatti un intero <9).
Come faccio a far capire al programma che il dato che voglio stampare
occupa piu' di una posizione nell'array?
Ho provato cosi, ma ancora non ottengo il risultato sperato:
uint16_t res;
uint8_t tmp, tmp2;
tmp=65;
tmp2=31;
res = res | tmp2;
res = res >> 8;
res = res | tmp;
printf (" res = %d \n", res);
sono riuscito a risolvere il problema di mettere in un unica variabile
a 16 bit il contenuto di due posizioni del mio array, ora pero' non
riesco a stampare la mia variabile a 16 bit, me ne stampa solo 8.
La printf() mi stampa il valore 65 (cioe' tmp), quando io vorrei che
stampasse tutti e 16 i bit (cioe' il valore 8001).
Non riesco a capire dove sbaglio, qualcuno sa indicarmi il problema ?
Grazie in anticipo.

 res = res >> 8;
Supponendo che qui res==31, se fai lo shift a *destra* diventa 0.
Prova con lo shift a *sinistra* (<<)
ciao
Giacomo

 wrote in 
news:cKjmk.129035$
FR.3...@twister1.libero.it
:

oltretutto io userei le union, rende tutta la faccenda molto piu' 
semplice.
union{
uint16_t res;
uint8_t tmp[2];
} u_res;
u_res.tmp[0] = 65;
u_res.tmp[1] = 31;
finito.
uppure se non ti piace l'array tmp:
union{
uint16_t res;
struct{
uint8_t msb;
uint8_t lsb;
} tmp;
} u_res;
u_res.tmp.msb = 65;
u_res.tmp.lsb = 31;
Ciao Jack
-- 
Eroi non si nasce, ti incastrano
- Jim Belushi

Newsgroup: it.comp.lang.c
Titolo: costruire un orb

Vorrei costruire un ORB a scopo "didattico", purtroppo non so bene da dove
partire.
Qualcuno di voi l'ha mai fatto? Mi potrebbe aiutare, magari anche facendomi
vedere un pň di codice?
Grazie.

Che diavolo e' un orb???

 wrote in message
9tistp$3oe$1...@pluto.news.dsi.unimi.it...


 sarebbe interessante informarsi al riguardo :)
magari sul NG giusto...
Newsgroup: it.comp.lang.c
Titolo: problema

Salve a tutto il NG,
Un tipo ci ha sottoposto il seguente problema:
"Salve a tutti!
Questa volta ho il seguente problema:
insieme ad alcuni file in fortran mi è stato inviato il file log1p_.c con il
seguente codice
#include
extern double log1p();
double log1p_(x)
double *x;
{
return ( log1p(*x) );
}
che non capisco assolutamente cosa voglia dire. Qualcuno lo sa? In più con
gcc viene compilato mentre con g++ no. Perchè?
...e un ultima cosa che a me sembra assurda, viene addirittura compilato con
f77!!! E' effettivamente strano o il problema sta nella mia completa
inesperienza?
Grazie mille
A presto"
"
credo che nella include ci vada math.h
ho letto qualcosina
log1p() è una funzione di libreria che calcola il log(1+numero)
"e che in passato hanno riscontrato un bug " .
qualcuno, del newsgroup, potrebbe chiarire le domande del messaggio
suvirgolettato?
Grazie

 gcc viene compilato mentre con g++ no. Perchè?
perche' il C++ non sa cosa sia la vecchia sintassi C ;-)
Tommy

Newsgroup: it.comp.lang.c
Titolo: ricorsività

sto cercando di implementare un algoritmo per ottenere le combinazioni di n 
elementi.
si potrebbe risolvere il problema nel seguente modo per un numero di 
elementi
eguale a 2 con elemeni contenuti nel vettore int a[] = { 1,2,3,4}
for (n1=0;  n1<3; ++n1)
    for n2=n1+1; n2<4: ++n2)
      printf("%d-%d",a[n1],a[n2])
ottenendo qualcosa del tipo
1-2
1-3
1-4
2-3
2-4
2-5
per ottenere combinazioni con elementi diversi ad es. 3 basterebbe 
aggiungere
un ciclo for (n3=n2+1;n3....................
e cosi via
io desidererei ottenere una funzione (ricorsiva )  che si adegui aa un 
numero di elementi variabile di caso in caso
come concepire una tale funzione???
Mi ricordo che navigando nel web trovai un sito che spiegava dettagliamente 
questo procedimento,
ma ho perso il link, qualcuno ne è a conoscenza.???
vi ringrazio gianmarco ferradini 

     for n2=n1+1; n2<4: ++n2)
Esatto e il procedimento per rendere tutto ricorsivo è abbastanza semplice.
Dato n il numero di elementi e l'array flags[0..n-1] di booleani
inizialmente settati a false, in pseudo codice sarebbe una cosa del tipo:
funzione combinazione(startIndex, level):
    if (level>=1):
       for i in [startIndex..n-1]:
          flags[i] = true;
          combinazione(i+1, level-1); 
          flags[i] = false;
    else
      ...preleva combinazione in base ai flags settati...
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

ti ringrazio per la risposta e per il codice, che implementerò
appena rientro in sede (vado qualche giorno al mare a
ritemprarmi) :-)))))
ciao grazie
Newsgroup: it.comp.lang.c
Titolo: MI DITE GLI AUTORI DI QUESTO LIBRO?

Chi sono gli autori di "Programmare in C" dell'Apogeo?
Grazie a coloro che midegneranno di una risposta.

Grazie a coloro che midegneranno di una risposta.
Scusa, ma questa non mi sembra una domanda adatta a questo gruppo di
discussione.  Per cortesia, cercate di rispettare il topic.
Se avessi fatto una ricerca su google, avresti trovato :
http://www.librinformatica.it/novita/libri/a361.htm
Newsgroup: it.comp.lang.c
Titolo: Nuova rivista di programmazione

ATTENZIONE !!
	In previsione del lancio di una nuova ed innovativa rivista di 
programmazione, Digitalia cerca programmatori italiani che desiderino 
collaborare. Oltre alla ovvia conoscenza di almeno un linguaggio di 
programmazione, è richiesta una ottima capacità di sintesi e l'abilità di 
progettare gli articoli come strutture multimediali (maggiori dettagli a 
chi è interessato) e non come semplice testo. Siamo interessati a quattro 
tipi di collaborazione:
	1)	Realizzazione di serie di articoli dedicati ad alcuni temi 
		specifici. Il numero di articoli per serie è variabile.
	2)	Realizzazione di singoli articoli.
	3)	Tips&Tricks.
	4)	News.
Nella mail, è necessario inserire come subject un riferimento ad una di 
queste quattro categorie (per esempio, rif.3 o rif.2), specificare il 
proprio curriculum vitae e gli argomenti di cui si vorrebbe scrivere. Non 
inviate mail che non contengano tutti e tre gli elementi.
Nota: 	non è richiesta una elevata conoscenza della programmazione in 
	generale ma una buona conoscenza degli argomenti trattati.
Contattatemi per maggiori informazioni.
-- 
The Bitland Prince - Digitalia
E-Mail address: tbpr...@SoftHome.net
Owner & Webmaster of 
www.juventus.org
 
"Information should be free..."


Newsgroup: it.comp.lang.c
Titolo: Verifica

C'è qualcuno?
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

C'č qualcuno?
no
--
Rhymes (rhy...@NOSPAMmyself.com)
http://www26.brinkster.com/rhymes
" avevo Halo, poi č arrivata la mia fidanzata ;-) "
Newsgroup: it.comp.lang.c
Titolo: Socket

Ciao a tutti...
qualcuno sa spiegarmi come correggere il "segmentation fault" dato da questa
istruzione
s = socket(AF_INET, SOCK_STREAM, 0) ?
E' sicuro che si tratta di questa perche' ho "farcito" il codice con una
marea di printf... e si blocca tutto solo prima di eseguire questa
istruzione.... sto impazzendo!!!!
Spero che qualcuno mi possa aiutare...
grazie comunque,
LadyBug.

:

Cosi' come la vedo potrebbe essere corretta.
Dopo le printf() metti dei fflush(stdout), se e' stdout lo stream che
usi. Se il programma crasha tu potresti non aver ancora svuotato il
buffer e a tutti gli effetti alcune printf di errore potrebbero essere
scattate ma non venir ancora stampate.
Cosi' se proprio non vuoi usare un debugger hai un output piu'
affidabile.
-- 
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."

 istruzione.... 
No, non è affatto sicuro. (Io direi che il problema è altrove.)
Innanzitutto, il buffering dell'output può dare false impressioni:
l'esecuzione del programma può essere andata ben oltre il punto in
questione. Perchè non usi un debugger?
In secondo luogo, il fatto che un programma si interrompre in
corrispondenza di una determinata istruzione non implica che il problema
*sia* in quella istruzione.
Considera questo codice:
 int main()
 {
	const char* msg = "hello world";
	int   buffer[4];
	printf("%s\n", msg );
	buffer[4] = 42;
	printf("%s\n", msg );
 }
Questo, con gcc sulla mia piattaforma, produce un "segmentation fault".
Ora, qui è ovviamente facile trovare l'errore, ma se prima dell'ultima
printf() ci fossero state un migliaio di istruzioni l'uso di un debugger
avrebbe semplificato la vita.
Max
Newsgroup: it.comp.lang.c
Titolo: il terminatore '\0' non si trova !!!

ciao devo aprire un file e leggere riga per riga;ogni riga ha quattro parole
separate da il segno $;
prima $ seconda $ terza $ quarta
per leggere le righe uso fgets, ovvero if((fgets(buffer,sizeof(buffer),file))==
NULL ...
per dividere la riga in quattro parole uso una funzione chiamata split che
mi inizializza un array contenuto in una struttura
struct user
{
     char vettore_utente[4][300];
};
ecco la funzione:
struct user *split(char *stringa, int *errore)
{
   /* mi scompatta la riga in tante stringhe 
      quante sono i caratteri '$' */ 
  char vector[300];
  struct user *result;
  char a[300];
  int i,k,j,conta_match;
  i=k=j=conta_match=0;
  result=(struct user *) malloc(sizeof(struct user));
  strcpy(vector,stringa);
  while (*stringa)
  {
     if(vector[i] == '$') 
     {
           a[j]='\0';
	   strcpy(result->vettore_utente[k],a);
	   k++;j=0;i=i+1;
	   conta_match+=1;
     }
     if(vector[i]=='\0') 
     {
           a[j-1]='\0';
	   strcpy(result->vettore_utente[k],a);
	   k++;j=0;i=i+1;
	   break;
     }
     a[j]= vector[i];
     stringa++;  
     i++;j++;
   }
   if (conta_match < 2 || conta_match > 4) 
   {
        *errore = 1;
   }
   return(result);
}
la funzione la richiamo 
struct user *usr;
usr=split(buffer,err)
il problema e' solamente all'ultima riga, ovvero questa termina senza dare
invio, spazio,tab o altro...
finisce con la quarta parola enienete dopo: cosi' la funzione split mi restituisce
all'ultima riga e all'ultimo elemento ho che vettore_utente[3] e' uguale
alla stringa "quart" e non "quarta", perche'???????
ciao e grazie a chi puo' darmi una spiegazione!!!
-- 
Posted from 
mail-4.tiscalinet.it
 [195.130.225.150] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Evidentemente non essendoci il carattere newline, invece di sovrascrivere
quest'ultimo con il carattere di fine stringa,
sovrascrive la lettera ultima "significativa".
(quart\0)
se ci fosse come in tutte le altre righe il carattere finale \n sarebbe
sovrascritto cosě
quarta\n
quarta\0
Non so se mi sono spiegato ;)
Corvo
Newsgroup: it.comp.lang.c
Titolo: Dev-C++

Premetto che sono alle primissime armi con c. Ho scaricato Dev-C++, dopo
aver compilato eseguo il programma, ma la finestra dos non appare nemmeno,
c'è un modo, o un opzione  per far si che rimanga aperta? grazie a tutti

 c'č un modo, o un opzione  per far si che rimanga aperta? grazie a tutti
magari prova aggiungendo alla fine del tuo programma un'istruzione che
attenda la pressione di un tasto dall'utente... per esempio
getch();
oppure
system("pause");
oppure ci sono mille altri modi, magari piů standard o piů portabili, non
ricordo se questi due siano standard o portabili. cmq se compili per dos
dovrebbero andarti bene entrambi.
ciao
Luca

Premetto che sono alle primissime armi con c. Ho scaricato Dev-C++, dopo
aver compilato eseguo il programma, ma la finestra dos non appare nemmeno,
c'è un modo, o un opzione  per far si che rimanga aperta? grazie a tutti

Compila questo:
#include <stdio.h>
#include <stdlib.h>
int main()
{
    system("PAUSE");
    return 0;
}


metti questo: system("pause");
prima del } del main

 prima del } del main
Meglio: #includere l'header "stdlib.h", e usare:
	return system("pause");
In coda alla main (che deve ritornare un int, ovviamente).
Ciao,
 Emmanuele.
-- 
Emmanuele Bassi (Zefram)                 [ 
http://www.emmanuelebassi.net
 ]
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4

Ma hai letto le tue righe che ho postato prima?

 Ma hai letto le tue righe che ho postato prima?
Non ho capito a che ti stai riferendo.
Se stai parlando del tuo esempio, c'è una differenza sostanziale tra il
mio esempio e il tuo (lascio come esercizio per lo studente quale sia).
E no, non avevo letto il tuo articolo: sai com'è, Usenet essendo un
sistema distribuito non è detto che il tuo articolo arrivi sulla mia
macchina prima di una mia risposta...


Scusa per il "tue righe", comunque mi riferivo a te Emmanule. Però non vedo
la differenza sostanziale, o meglio la differenza la vedo ma non capisco
perchè è sostanziale. Ciao

 perchè è sostanziale. Ciao
Perché nel tuo esempio, se system fallisce, l'utente non lo viene a
sapere, perché ritorni comunque 0. Ricordo che system() ritorna un
intero che corrisponde al codice di ritorno del processo che system()
lancia; su macchine POSIX-compliant, ad esempio, in caso di errore
interno alla system() (e.g.: errore nel fork()ing), la funzione ritorna
-1 e nel caso non sia stato possibile lanciare una shell, il codice è
127.
Nel mio esempio, faccio ritornare al programma il codice ritornato dalla
system(). Se la chiamata è andata a buon fine, ritornerà 0 come è giusto
che sia (in fondo è un "pause"); al contrario, se c'è stato un errore,
ritorna il codice dell'errore.


 ha scritto nel messaggio
news:DTL_b.16417$gk.7...@news3.tin.it...

Newsgroup: it.comp.lang.c
Titolo: [beginner] strutture

Salve a tutti,
sto provando un piccolo programma sulle strutture:
#include <stdio.h>
struct automobile {
 char* colore;
 int price;
};
main() {
struct automobile *ferrari;
ferrari->price = 25000;
ferrari->colore="rosso";
printf("colore %s e prezzo %d",ferrari->colore,ferrari->price);
 }
Perchè quando lancio questo proramma ottengo un core dump ?
(Il core -a quanto pare- è causato dalla linea
ferrari->colore="rosso";
)
Grazie 1000 in anticipo
Francesco

 Perchè quando lancio questo proramma ottengo un core dump ?
perche' hai allocato un puntatore ad una struttura, non la struttura.
inoltre scrivere
colore = "rosso"; e' sbagliato perche' quello che fa
e' copiare in colore il puntatore alla stringa "rosso" che
si trova in questo momento in memoria. Quello che vorresti fare
(di solito, e siccome sei un principiante) e' allocare spazio
per una stringa e copiarla.
Puoi ovviare in due modi
1) struct automobile ferrari;
    ferrari.price = 25000;
    ferrari.colore = malloc(6);
    strcpy(ferrari.colore, "rosso");
2) struct automobile *ferrari;
    ferrari = malloc(sizeof(struct automobile));
    ferrari->price = 25000;
    ferrari->colore = malloc(6);
    strcpy(ferrari->colore,"rosso");
ciao.
Oppure puoi dichiare una lunghezza fissa per colore, cioe' ad esempio:
struct automobile {
char colore[12];
int price;
};
e cosi' non devi fare la malloc per colore (se i colori hanno lunghezze 
di 11 o meno caratteri, naturalmente).
ciao.
g.

Grazie 1000 per la risposta velocissima
ciao
Francesco
"Giovanni Resta" <g.r...@iit.cnr.it.nospam> ha scritto nel messaggio
news:bgnjlt$smv$1...@newsfeed.cineca.it...

Newsgroup: it.comp.lang.c
Titolo: Buongiorno a tutti: ho delle domandine sul ?? C ??

Ciao, sono nuovo e volevo porvi qualche domandina sul C
Dovrei prepare un esame 'programmazione degli elaborati', pare che si 
usa il C.
Che differenza c'è tra C e ANSI C?
Immagino che quello ansi sia il papà del C, quello che esige una 
sintassi strutturata su modelli e non sulla libertà del programmatore.
...giusto???
Cmq io di C non so una mazza, lavoro molto con il php che come sintassi 
non dovrebbe essere molto lontana dal C...vero??
Mi sono iscritto il mese scorso, vorrei tentare l'esame. Mi è stato 
detto che può andar bene la creazione di una libreria, con Makefile e 
relazione.
Il mio obbiettivo è sta libreria, qual'è il percorso più rapido per 
raggiungerlo?
In più se avete dei testi da consigliarmi su ANSI C, possibilmente in 
italiano!
Sui concetti della programmazione non sono proprio a terra, funzioni, 
variabili,  array, stringhe ...sono cose di tutti i giorni con il php e 
bash.
Consigli??
Grazie mille....
...un saluto a tutti!!
Michele

 
Pratica.
ciao
-- 
-------------------------------
per scrivere in privato
togliere "1975nosp"
to reply remove "1975nosp"

 relazione.
L'università mi lascia sempre più perplesso.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 raggiungerlo?
Non ci sono percorsi più o meno brevi. Fare una libreria consiste 
semplicemente nello scrivere le funzioni, compilarle e assemblarle in un 
pacchetto (libreria, appunto) anzichè linkarle in un programma 
eseguibile. Il tutto si fa con delle opzioni per il compilatore nel 
Makefile.
Dal punto di vista del sorgente C non te ne può fregare di meno.

 
Perché dici questo?
Io ho imparato a programmare in php, in bash ma sono consapevole di 
essere molto limitato in quanto non conosco le basi basi della 
parogrammazione. Pascal, C, C++, Basic....sono linguaggi che non 
conosco....assemler è arabo per me!:-(
Dopo tutto sono un geometra, basi teoriche e non sulla programmazione 
non ne ho. Penso che l'università dovrebbe colmare quei crateri che ho!
....o no?
Ciao...
Michele

 Dal punto di vista del sorgente C non te ne può fregare di meno.
 >
Non credo, penso che al prof interssa vedere come è stato scritto, non 
se la libreria funziona o meno!
Nel Makefile viene indicato il tipo e versione del compilatore, varie 
path, le opzioni di configurazione e compilazione....giusto??
Quando si installa un programma solitamente è:
1) ./configure --opzioni
2) make; make install
Quindi nel 1 si vanno a settare delle variabili sostanzialmente
nel secondo si va a comiplare in base al makefile?
Grazie...
Michele
Newsgroup: it.comp.lang.c
Titolo: Operazioni Logiche e grandi numeri

Salve a tutti,
 dovrei effettuare, tra l'altro, delle operazioni logiche con numeri
molto grandi (definiti per forza come long double pur non essendo
frazionali) ma ho visto che gli operatori logici (a me interessano
l'AND e l'OR perche' devo ottenere e settare i vari bit; ma il
discorso vale per tutti gli operatori logici) lavorano al piu' con
long.
Come potrei fare ?
Grazie.

Workobbit wrote:

mmm, problema... la rappresentazione dei bit di un int o un long e' 
aderente a quella binaria che tu studi a scuola... quella di un float o un 
double invece e' composta da due parti (diciamo base ed esponente, per 
capirci), quindi gli and / or bit a bit perdono completamente di senso...
se hai bisogno di tenere sequenze molto grandi di bit definisciti delle 
strutture dati particolari, fai prima... (in C++ ti direi fatti una classe 
particolare, qui non te lo posso dire :-) )
Pinolo

particolare, qui non te lo posso dire :-) )
Si hai ragione. Qui mi convinci....
A questo punto approfitto pure per chiederti: e se voglio memorizzare
un numero intero di 100 cifre ? E se poi voglio farci delle operazioni
? Che faccio ?
Grazie.

 E se poi voglio farci delle operazioni? Che faccio ?
Metti in  colonna e fai come  ti hanno insegnato alle  elementari :D No,
non  sto  scherzando  si  fa  proprio cosi`. Guarda  i  sorgenti  di  bc
(
www.gnu.org
).
Tempo  fa avevo  iniziato  un  progetto del  genere  (mai terminato  per
mancanza di tempo). Per adesso la (mini)libreria fa somme e sottrazioni,
se ti interessa posso mandarti il codice.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Se non puoi convincerli, confondili.

 (
www.gnu.org
).
Vai qua: 
http://swox.com/gmp/
 e scarica GMP; ti fornisce strutture dati e
aritmetica intera/virgola mobile a precisione arbitraria. Ho letto che per
prodotto/divisione si usano algoritmi piů avanzati: per numeri a n bit
l'algoritmo normale ha ordine O(n^2), mentre questi O(n log n), mediante
l'uso delle trasformate di Fourier, la FFT(Fast Fourier Transformate).
Un altro riferimento che ho trovato č l'indirizzo di GAP:
http://www-gap.dcs.st-andrews.ac.uk/~gap/
 ; non so se usi tali algoritmi, ma
ritengo di sě(ho sentito citare GAP per problemi di alto livello matematico,
come problemi di teoria dei gruppi).
Tutto free, ovvio.
Ciao!
Newsgroup: it.comp.lang.c
Titolo: compilatore gratis

vorrei iniziare a programmare in c o c++,
mi sapreste consigliare un compilatore gratis con il quale iniziare
aprogrammare?
grazie

 ha scritto nel messaggio
news:a55svc$id3$1...@lacerta.tiscalinet.it...


 ha scritto nel messaggio
news:clwd8.7858$fa5.2...@twister2.libero.it...


 aprogrammare?
Se usi windows c'e' anche l'Lcc-Win32
-- 
Marco

 ha scritto nel messaggio
news:slrna7f2lv....@igloo.northpole...


 Dove lo potrei trovare?
www.cs.virginia.edu/~lcc-win32
-- 
Marco

Newsgroup: it.comp.lang.c
Titolo: Famiglia di funzioni exec( ) URGENTE

Dovendo eseguire il semplice comando Unix "ls -l", esiste una funzione della
famiglia exec che prenda come argomnto l'intera stringa "ls -l" senza dover
passare separatamente "ls" e poi "-l"?
Nel mio caso specifico,  execlp("ls","ls","-l",NULL), dovrebbe essere
scritta con un unico argomento, mentre il parametro "-l" mi obbliga a
passarne due.
 Grazie
                    Geppo

 passarne due.
Puoi provare a usare 
     char *vettore[] = {"ls", "-l", (char *)0};
     ..............
     execvp("ls", vettore);
costruendo il vettore "al volo".
Come già scritto, comunque, i NG dedicati a unix/linux sono più adatti
a questo tipo di domande.
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

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

qualcuno mi dire che cos'è un thread. Grazie. So che qualcosa che
riguarda socket e cose del genere ma una definizione non la trovo.


Non riguarda i socket!
Riguarda l'esecuzione dei programmi; in particolare:
quando avvii un programma, crei per default un thread che esegue il 
programma.
Quest'ultimo puň essere in grado di generare altri thread, che eseguono 
PORZIONI
di codice del programma stesso, o anche avviare nuovi programmi.
La discussione č molto vasta e non sň se sono riuscito a farti capire + 
o - di cosa si tratta!

 riguarda socket e cose del genere ma una definizione non la trovo.
L'unica cosa che accomuna socket e thread è che entrambi sono OT.


ehehehe....sagace!

 riguarda socket e cose del genere ma una definizione non la trovo.
Qui c'è una bellissima descrizione dei thread Posix:
http://www-128.ibm.com/developerworks/linux/library/l-posix1.html
-- 
Davide
Newsgroup: it.comp.lang.c
Titolo: Riempire un array di 307200 elementi!!

Devo riempire un array...
   int *screen [307200];    //640*480 = 307200
ma il Turbo C++ non accetta array cosě grandi....ho provato anche con
   int huge *screen [307200L];
senza nessun risultato.    Chi mi puň aiutare??


Forse non puo' usare uno stack cosi' grande di default: o cambi le
impostazioni del compilatore, oppura allochi l'array con una malloc.
-- 
 Ciao, Luca.
 Reply to 
luca....@tiscalinet.it
 UIN : 43385135

...


 senza nessun risultato.    Chi mi puň aiutare??
Utilizza un compilatore a 32bit. Quelli a 16 sono limitati ad array non piů
grandi di 64Kb a causa dell'architettura dei processori Intel a 16 bit
(8086, 286).
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
ICQ: 42227764
---------------------------------------------------------------------------


~~~~~~~~~~~~~~~~~
MAINARDI Gianfranco
Burago di Molgora (MI)
Italia
Email : 
main...@rete039.it
ICQ# number : 31334916
~~~~~~~~~~~~~~~~~

senza nessun risultato.    Chi mi può aiutare??
Non puoi farlo a meno che non utilizzi la modalità protetta, il
problema dipende dal fatto che in modalità reale un blocco
indirizzabile ha una dimensione massima di 64 Kbyte.
L'alternativa è utilizzare i puntatori sempre a blocchi di 64Kbyte.
--------------------------------------------------------
* Andrea Laforgia        (
andrea_...@bigfoot.com
) *
--------------------------------------------------------

L'array che stai cercando di allocare e' di tipo 'automatico', cio'
Non è comunque detto che l'array sia di tipo automatico.
L'incapacità di allocare un array del genere per un sistema che giri
in modalità reale prescinde da dove sia "fisicamente" il vettore.


 wrote:
~2. utilizza un array allocato dinamicamente
intendi malloc() o le liste a puntatori?
fritz [che aveva un problema simile con un database rudimentale]

Newsgroup: it.comp.lang.c
Titolo: (Lungo) - I problemi di chi inizia...

 mailto:
gar...@usa.net
 <
- >ICQ UIN# 23780140 <-

  Perche' stampa sempre 0 ? Devo fare qualcosa d'altro per usarla ?
Perche' lo stampi una sola volta ;)
Ed hai beccato proprio quel valore.
Devi inizializzare il numero matrice per la generazione dei numeri
casuali tramite srand()

   Perche' stampa sempre 0 ? Devo fare qualcosa d'altro per usarla ?
Nel DJGPP funziona regolarmente. Nel TurboC++ 1.01 invece si chiama
rand() e non random(). Vedi un po' tu...
EMG

Newsgroup: it.comp.lang.c
Titolo: portabilità

Salve a tutti
sto studiano un po di ansi C, e vorrei capire quali funzioni sono
portatili a livello di posix, chiedevo cosa posso leggere per maggiori
informazioni?
Uso i compilatore cygnus sotto win ed ovviamente il GCC in linux
vorrei scrivere applicazione di basso livello per la gestione di
hardware e la gestione dello schermo in modalità testo. QUalche
cosniglio? PS e se un domani volessi fare il porting su mainfare o
macchine non intel?
CIao a tutti e grazie?
Newsgroup: it.comp.lang.c
Titolo: Problemi con i Socket





Io ho sviluppato un applicazione sotto Windows98 
che effettua la comunicazione client/server tramita socket con protocollo 
multicast UDP. Il tutto sembra funzionare bene per un po di tempo, ma dopo 
qualche ora sul client la memoria allocata e quella bloccata aumentano a 
dismisura fino a bloccare il sistema. Qualcuno sa dirmi se ci sono settaggi 
particolare relativi anche all'istruzione setsocket().


 


Il codice client è del tipo:


whike(1)


{


recvfrom(.....);


}


 


il codice server è del tipo:




whike(1)


{


sendto(......);


}
 


il pacchetto che invio è di 15K.


 


Spero di avere presto vostre risposte.


                      
                
                
                
                
Saluti Elio.



 whike(1)
Sembra funzionare bene?  whike?  Cos'e', un pesce d'aprile?
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it







No non è un pesce d'aprile,ma un problema che mi assilla,qualcuno sa come 
posso risolverlo o dove posso trovare esempi di socket multicast oppure delle 
specifiche che mi garantiscano il funzionamento sotto Windows98.


 


"Io ho sviluppato un applicazione sotto Windows98 
che effettua la comunicazione client/server tramite socket con protocollo 
multicast UDP. Il tutto sembra funzionare bene per un po' di tempo, ma dopo 
qualche ora sul client la memoria allocata e quella bloccata aumentano a 
dismisura fino a bloccare il sistema. Qualcuno sa dirmi se ci sono settaggi 
particolare relativi anche all'istruzione setsocket().


 


Il codice client è del tipo:


while(1)


{


recvfrom(.....);


}


 


il codice server è del tipo:




while(1)


{


sendto(......);


}
 


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

 prova scusate.

 prova scusate.
Ti rammento che esistono newsgroup fatti apposta per effettuare le
prove, ad esempio it.test.
Il Ghenio
-----
Jesse: Preparatevi a passare dei guai.
James: Dei guai molto grossi!!!
(Team Rocket)
-----
Newsgroup: it.comp.lang.c
Titolo: Dubbio compilazione con makefile

Salve.
Ho sviluppato una piccola applicazione in C. In ambiente C-Unix. 
Adessò sorge questo piccolo dubbio. Qual'è il modo più elegante per specificare
un opzione di compilazione, in modo che il preprocessore si comporti in maniera
differente a seconda dell'opzione specificata...?
Attualmente imposto il valore di una variabile di ambiente all'interno di un
file di include del progetto ma non mi sembra pratico anche perchè la persona
che compila deve sapere di questa caratteristica...
E' possibile specificare delle variabili di ambiente per il preprocessore già
all'interno del makefile in modo che tali opzioni specifiche di compilazione
siamo attive solo ad una richieste specifica ???  Lasciando quindi il make all
per la compilazione standard...
Grazie a chiunque sappia darmi una mano...  Saluti!
-- 
Posted from  [151.39.223.27] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

per la compilazione standard...
Con GCC e i suoi vari porting puoi specificare a tempo di compilazione
una define e il suo valore
-Dnome_della_define
-Dnome_della_define=valore
(non so dirti se anche i compilatori che non derivano dal GCC lo
supportino)
La prima assegna come valore di default 1 (il man riporta cosi', ma
non farci affidamento... se vuoi essere sicuro che sia 1 speficicalo).
Se chi deve compilarlo ha il GCC o uno dei suoi porting per altre
piattaforme avra' quasi certamente il make, quindi puoi contare su
questo e far fare il tutto al make.
Se poi sei sicuro che il tuo target (inteso come persone interessate
al tuo programma) abbia anche automate e autoconf puoi far fare tutto
al configure in modo piu' elegante e pulito (per lui, non per te che
lo devi creare :P).
Mox :)

 standard...
Puoi fare tutto questo e molto di piu` ;)
Per  specificare manualmente  le opzioni  puoi usare  -DOPZIONE=valore a
compile time sulla  riga di comando di gcc (quindi  nel makefile servono
piu`  target). Oppure, se  vuoi automatizzare  la cosa  puoi appoggiarti
allo script configure.
Per i dettagli:
man gcc
info autoconf
f/up settato, qui siamo OT
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
"Ci sono le balle , le megaballe e le statistiche".
 Mark Twain
Newsgroup: it.comp.lang.c
Titolo: implementazione della mutua esclusione.

Salve, devo implementare la mutua esclusione in C con le primitive UP e
DOWN, perň non riesco a trovare una libreria (unix) che le contiene.
Grazie, Mauro


Prova con la libreria pthread :
$ man pthread_mutex_lock
Oppure prova con la flock
$ man flock

Newsgroup: it.comp.lang.c
Titolo: Operatore ~ (invert)

Ciao,
sto scrivendo una funzione che applica una notazione RPN su una stringa a 
piacere (server pe calcolare un codice di sblocco). Spiegar tutto e' 
lunghetto, ma posto che:
- la gestione prevede l'uso di uno stack nel quale sono pushati gli 
operandi
- quando si deve applicare un operatore si poppano gli ultimi due operandi 
e ci si applica l'operatore - il risultato e' pushato in stack
Posto quanto sopra, come trattare l'operatore invert? Mi pare che non 
preveda un parametro (per esempio, shiftleft lo prevede: shiftami questo 
intero di n bits). Forse che invert non si puo' in questo caso applicare?
Ciao,
-- 
Mario Rossi

 ha scritto:

Lo  tratti  come   operatore  unario,  ma  questo   contraddice  il  tuo
secondo postulato. Se,  by design,  tratti solo operatori  binari allora
(ovviamente) non puoi trattare gli operatori unari ;)
Luca
-- 
Home: 
http://kronoz.cjb.net
"Di tutte le perversioni sessuali, la castita` e` la piu` strana".
Anatole France

 Luca
Credo d'aver capito. Nel caso degli unari applico l'operatore solo 
sull'ultimo elemento dello stack, giusto?
Grazie e ciao,
-- 
Mario Rossi

Newsgroup: it.comp.lang.c
Titolo: Array bidimensionali dinamici

Come si possono creare praticamente le matrici?
Mi servono dinamiche perché non conosco a priori il numero di righe e
colonne.
Grazie.

 Come si possono creare praticamente le matrici?
Considerando una matrice N*M:
int N = 5; /* Numero righe */
int M = 4; /* Numero colonne */
int i;
int **matrix; /* Suppongo una matrice di interi */
matrix = malloc(sizeof(int*) * N);
assert(matrix);
for (i = 0; i < N; i++) {
	matrix[i] = malloc(sizeof(int) * M;
	assert(matrix[i]);
}
matrix[2][3] = 12; /* Accedi con questa notazione, occhio che gli indici
		      partono da 0 */
/* Clean up */
for (i = 0; i < N; i++)
	free(matrix[i]);
free(matrix);
 
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
"L'abilita` politica e` l'abilita` di prevedere quello che
 accadra` domani, la prossima settimana, il prossimo mese e
 l'anno prossimo. E di essere cosi` abili, piu` tardi,
 da spiegare  perche' non e` accaduto."

 ha scritto nel messaggio
news:9pi64e$4dj$1...@dreamland.darkstar.net...

grazie va alla grande.
Newsgroup: it.comp.lang.c
Titolo: Che errore è????

Per favore aiutatemi!!!!
Il compilatore mi da' il seguente errore:
" ANSI C++ forbids implicit conversion from `void *' in initialization "
alla riga
struct nodolista *ptrsorg= malloc(sizeof(struct nodolista));
dove
struct nodolista {
     char label[6+1];
     char codice[4+1];
     char operando1[10+1];
     char operando2[10+1];
     struct nodolista *punt;
           };
perchč mi da' errore?
Grazie
Francesco.

 perchč mi da' errore?
te lo dice l'errore: ANSI C++ proibisce etc etc
stai compilando in c++, non in c

 perchè mi da' errore?
Perchè il compilatore non converte automaticamente il puntatore void *
restituito da malloc in un puntatore a struct nodolista*: usa un cast
esplicito e dovresti risolvere il problema:
struct nodolista *ptrsorg= (struct nodolista *) malloc(sizeof(struct
nodolista));
In alternativa cambia l'estensione del file che stai compilando in *.c, in C
standard la conversione esplicita non è necessaria.
Ciao,
Cecco

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

salve
che si intende per 'i socket inviato raw data' mentre le rpc dati primitivi?
grazie


che i socket trasmettono un flusso di byte che sta a te interpretare le
chiamate di procedura remota di solito hanno un interfaccia e rispondono
in maniera fissa concorde con la propria interfaccia, un tipo noto
diciamo appunto primitivo tipo int, double, ....

Newsgroup: it.comp.lang.c
Titolo: [HELP] Segnali

Qualcuno sa come ricavare il PID di un processo che ha mandato un segnale,
dal processo che lo riceve?
Grazie. Ciao
J. Mc Lane

...

Nel signal handler lo ottieni come return value della waitpid(2)

...

Scusami, ho letto male la domanda; guarda sigaction (2) invece, in
particolare la flag SA_SIGINFO che permette di avere un signal handler
che fornisce informazioni sul motivo che ha generato il segnale (tra
cui il PID)
Claudio

Newsgroup: it.comp.lang.c
Titolo: funzione che ritorna un **

Ciao a tutti,
devo costruire una matrice, l'allocazione della memoria avviene in una
funzione cosě definita:
int ** miafunzione ();
perň ho dei problemi a fare in modo che la funzione restituisca un puntatore
a puntatore... come devo fare? cosa metto nel return?
Grazie a tutti
Ciao

 a puntatore... come devo fare? cosa metto nel return?
Un puntatore a puntatore?
Come hai allocato la matrice?
Luca
-- 
Home: 
http://kronoz.cjb.net
Se non puoi convincerli, confondili.

/*Riempimento di una matrice. E' solo un esempio..*/
int **myfunction(int);
int main(){
int dim;
int **matrix;
printf("\n Inserisci dimensione : ");
scanf("%d",&dim);
matrix = myfunction(dim);
}
int **myfunction(int n){
int **M;
int i,j;
    /*Allocazione della matrice*/
    M = (int **)malloc(n*sizeof(int*));
    for(i = 0; i < n; i++)
        M[i] = (int*)malloc(n*sizeof(int));
    /***************************/
    for(i = 0; i < n; i++)
        for(j = 0; j < n; j++){
          printf("Elemento [%d,%d] ",i+1,j+1);
            scanf("%d",&M[i][j]);
         }
return M;
}
Ennio

Newsgroup: it.comp.lang.c
Titolo: semplice quesito

#include <stdio.h>
#include <stdlib.h>
#define L 12
double Funz(char [], int *);
int N=L;
main () {
char *s; int i;
s = (char *) malloc(L);
s = "Buone Feste";
Funz(s, &N);
N+2; N++;
printf("N vale adesso: %d\n", N);
{int i=0;
for (i=L-2; i>0; --i,--i) printf("%c", *(s+i)); }
}
double Funz(char *y, int *DIM) {
int i=1, N;
N++;
while (i<((*DIM)-8)) { y[i-1]=y[i+1]; i++; }
}
ciao č una stupidissima domanda, ma volevo sapere perchč questo programma
non esegue " N+2; " ma solo N++ e alla fine N risulta valere 13.
Grazie :)

 solo N++ e alla fine N risulta valere 13.
Hai le idee molto confuse....
perche' N++ cambia il valore di N.
invece N+2 non cambia il valore di N.
per cambiare il valore di N dovresti avere: N += 2;
o piu' semplicemente: N = N + 2;
int N = 5;
N+2;
// ora N vale ancora 5,
// N+2 fa 7, ma 7 non viene scritto da nessuna parte
N = N+2;
// ora N vale 7, infatti N+2, che vale 7, viene scritto dentro N.
N += 2;
// ora N vale 9, infatti N diventa uguale a se stesso 2.
Tommy


Ti ringrazio soprattutto per la pazienza ;)
cmq ho capito...

Newsgroup: it.comp.lang.c
Titolo: conoscete programma che converte exe in c

Salve,
conoscete qualche programma che converte i files .exe in sorgente c, o anche
in qualche altro linguaggio?
Grazie mille,
        Matteo.
P.s.: potete rispondermi alla mia casella 
bach...@supereva.it
 ? Ancora
grazie

in qualche altro linguaggio?
Al massimo puoi disassemblare l'eseguibile e rendere il codice ASM
eseguibile dal programma in C (il modo non e' standard neanche in C99
e devi guardare il manuale del compilatore che utilizzi).
-- 
Mox

Come si fa? Sono interessato anche io.....

-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

         Matteo.

Usa softice oppure wdasmi o nache IDA(e' abbastanza complicato).
Ciao
-- 
             -=( |LnZ| )=- Lorenzo Porro
        e-mail: lnz@{aT}
iname.com
        Home-Page: 
http://lnz.cjb.net
	ettercap project: 
http://ettercap.sourceforge.net
 

> Come si fa? Sono interessato anche io.....
Ti trovi uno dei tanti decompilatori presenti sulla rete (prova a fare una
ricerca con Google) e lo usi per disassemblare il file eseguibile....
Attenzione xo' che ottieni codice in assembler quindi se non ne hai
familiarita' non so a quanto ti possa servire
Ciao
       Maurizio

---[CUT]---
Faccio notare, però, che la cosa potrebbe essere illegale.
Guarda prima la licenza del programma che vuoi "disassemblare"....
mick
p.s. Chiedo scusa se non mi sono presentato prima, sono un lurkatore 
abituale....  =))
-- 
Per favore non inviatemi allegati "MSOffice".
Ci sono tantissime buoni ragioni per questo,
ma la principale è che non posso leggerli.
Grazie, mick.
Newsgroup: it.comp.lang.c
Titolo: Spazio d'ambiente esaurito

Ho installato lo GNU C/C++ e seguendo le istruzioni ho creato un file batch
per le impostazioni delle variabili di ambiente, con il percorso dove ho
installato:
   set
path=c:\sviluppo\c\gnuwin32\b18\H-i386-cygwin32\bin;C:\sviluppo\c\gnuwin32\b
18\tcl\bin;%path%
   set
GCC_EXEC_PREFIX=C:\sviluppo\c\gnuwin32\b18\H-i386-cygwin32\lib\gcc-lib\
   set TCL_LIBRARY=C:/sviluppo/c/gnuwin32/b18/tcl/lib/tcl7.6
   set GDBTK_LIBRARY=C:/sviluppo/c/gnuwin32/b18/share/gdbtcl
Quando eseguo il file batch, ottengo ripetutamente il messaggio di errore:
   "Spazio di ambiente esaurito"
Se invece eseguo manualmente i comandi, funzionano.
Qual'è il problema?
Cosa devo fare per risolverlo?
Grazie per l'aiuto.
--
  ________
  \  /\  /
   \/  \/     T R X
   /\  /\    -------- (c)
  /  \/  \
  ^^^^^^^^


 r> Ho installato lo GNU C/C++ e seguendo le istruzioni ho creato un file
 r> batch per le impostazioni delle variabili di ambiente, con il percorso 
 r> dove ho
 r> installato:
 r>    set 
 r> path=c:\sviluppo\c\gnuwin32\b18\H-i386-cygwin32\bin;C:\sviluppo\c\gnuwi
 r> n32\b 
 r> 18\tcl\bin;%path%
 r>    set 
 r> GCC_EXEC_PREFIX=C:\sviluppo\c\gnuwin32\b18\H-i386-cygwin32\lib\gcc-lib\
 r>    set TCL_LIBRARY=C:/sviluppo/c/gnuwin32/b18/tcl/lib/tcl7.6
 r>    set GDBTK_LIBRARY=C:/sviluppo/c/gnuwin32/b18/share/gdbtcl
 r> Quando eseguo il file batch, ottengo ripetutamente il messaggio di
 r> errore:
 r>    "Spazio di ambiente esaurito" Se invece eseguo manualmente i 
 r> comandi, funzionano.
 r> Qual'è il problema? Cosa devo fare per risolverlo?
 r> Grazie per l'aiuto.
c'e una riga nel config.sys
shell=c:\command.com.... ed un numero di solito 512, aumentalo a 1024 e cosi
hai piu spazio per le variabili SET
Ciao,
  Domenico
www.geocities.com/SiliconValley/Peaks/1004/index.html
 |
 |_Civic Net of Roma -=> 
Dom...@1995-151-51.bbs.comune.roma.it

Grazie per l'aiuto.
prego
--
[ranger, email: 
ran...@queen.it
]
ICQ# 6585343

Newsgroup: it.comp.lang.c
Titolo: problema puntatori

ciao
ho il seguente problema:
ho creato una struttura per un programma che utilizza le liste, quindi
al suo interno c'è un puntatore alla struttura successiva
ho dichiarato una puntatore alla struttura e nel main lo passo per
referenza ad una funzione
all'interno della funzione verifico se il puntatore alla struttura
successiva (con l'operatore ->) è NULL e qui il compilatore mi segnale
l'errore
Se sono stato chiaro riuscite a darmi una mano?
grazie

 Se sono stato chiaro riuscite a darmi una mano?
Per quanto mi riguarda, no. Con un po' di codice, la cosa (forse) era
gia' risolta.
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 grazie
Forse ho capito male, ma che senso ha passare un puntatore per reference?

 wrote in message
news:82928005.02112...@posting.google.com

Se vuoi cambiare il valore del puntatore (e non quanto indirizzato dallo
stesso) all'interno di una funzione, ovviamente devi passare l'indirizzo
del puntatore :-)


 ha scritto nel messaggio
news:82928005.02112...@posting.google.com...
