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

Ciao a tutti,
ho scritto un programma in questo modo:
#include <stdio.h>
char * itoa(int i)
{
char buf[20];
sprintf(buf,%d,i);
return buf;
}
int main()
{
printf("uno -> %s",itoa(1));
}
Il problema è che buf è una variabile locale alla funzione itoa(), e
quindi la funzione ritorna un puntatore dangling.
Come posso correggere il programma in modo che non si abbiano puntatori
dangling?
Grazie

 ha scritto:

Usi un buffer 'static' oppure lo allochi dinamicamente.
Luca
-- 
Sono un mirabile incrocio tra Tarzan e Giacomo Leopardi.
In me convivono tutte le doti intelluttuali di Tarzan e
tutta la prestanza fisica di Giacomo Leopardi.
A. Borsani
Newsgroup: it.comp.lang.c
Titolo: casting forzato su sottrazone: xchè?

Sto eseguendo una sottrazione su 2 long (da 32 bit).
La sottrazione mi dà dei problemi: il debugger è OK, ma l'applicazione, 
essendo x un microcontrollore non funziona correttamente.
Mi chiedevo che errori di casting posso aver fatto!
Guardando e spolverando vecchi sorgenti ho trovato sottrazioni in cui 
veniva forzato il casting tipo:
PWM <= (unsigned int)(ValoreUnsignedInt -MiaCostante)
dove PWM è un unsigned int.
Perchè chi ha fatto questo programma ha inserito (unsigned int) davanti 
alla sottrazione? Che errore potrei commettere?
Grazie

 Grazie
Se hai qualcosa del tipo
unsigned int res = (unsigned int)(1 -2);
il valore di res e', o potrebbe essere, (il risultato credo sia
un undefined behaviour) vicino ai 4 miliardi. Spero che chi ha
scritto il codice originario non volesse fare l'operazione di
"valore assoluto".
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 "valore assoluto".
Intanto grazie!
Credo di nò, anche se è sottinteso che la sottrazione dovrà dare sempre 
numeri positivi, se nò è come hai detto tu ...0 - 1 = FFFFFFFFFFFF.......
Newsgroup: it.comp.lang.c
Titolo: Librerie per l'estrazione di informazioni da file di testo

Salve,
il mio problema č estrarre, da file di testo, delle informazioni.
Questi file non sono lineari come i file di log, ma ogni informazione
puň trovarsi anche su piů righe. Ecco un esempio:
-----------------------------------------------------------------
NETWORK ITEM STATES
SIGNALLING ROUTE SETS
NETWORK: NA1 
                                  SIGNALLING ROUTES
SP CODE H/D         NAME   STATE  IN ROUTE SET        STATE  INFO
==================  =====  =====  ==========================
=================
  0900/02304        BSC3I  OWN SIGNALLING POINT AS SIGNALLING END
POINT
  0950/02384        MSCI   UA       0950/02384        UA-INS
------------------------------------------------------------------------
Esiste qualche tecnica, algoritmo, libreria, per permettere di
ricavare queste info specificando qualche parametro per la ricerca?
Grazie,
PB

 ricavare queste info specificando qualche parametro per la ricerca?
Dipende da quello che vuoi fare... Se ti interessa solo estrarre
stringhe con certe caratteristiche, puoi porvare a dare un'occhiata
alle librerie che implementano le regular expression.
Ne esistono porting anche per Windows. Da qualche parte dovrei
averle.
Per "estrazioni" piu' complesse, credo che tu debba farti qualcosa
a "manina".
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 averle.
Potresti passarmele?Dammi conferma e ti faccio avere il mio indirizzo
di posta elettronica.
PB

 > alle librerie che implementano le regular expression.
Se le espressioni regolari non ti bastano (es. delimitatori bilanciati,
match su piu' righe, ...) puoi dare un'occhiata a
http://gema.sourceforge.net
 e' completamente in ANSI C e funziona su diverse
versioni sia di Unix che di Win.
Non è di uso immediato ma dopo averci preso la mano puoi risolvere
praticamente qualunque problema di trasformazione, elaborazione di file di
testo.
Ciao,
                                .RD.

 di posta elettronica.
Io le avevo scaricate da qui
http://gnuwin32.sourceforge.net/packages/regex-spencer.htm
(ti consiglio di scaricare i ".zip")

Newsgroup: it.comp.lang.c
Titolo: File header .h

Ciao group,
vorrei fare una semplice domanda sugli header file?
Perche' implementarli in un programma C? Quando e come devono essere
gestiti? Cosa inserirci?
Sto facendo un lungo programma in C e ovviamente sono obbligato a
dividerlo in moduli da linkare successivamente.
Il problema e' come gestirli, cosa fare con gli header, ecc.
Degli esempi sarebbero graditi.
Grazie a tutti.

Generalmente in un .h si inseriscono:
- le dichiarazioni delle funzioni (prototype);
- le dichiarazioni delle variabili globali (es. extern int a);
- le #define
- i tipi definiti con type o le strutture definite con struct:
- etc.
Questo perchè in questo modo se il tuo programma è diviso in moduli basta
che richiami lo stesso .h per poter far riferimento agli oggetti degli altri
moduli. Inoltre se modifichi un .h e usi MAKE o ambienti IDE ti ricompilano
automaticamente tutti i sorgenti interessati.
Ciao.
Antonio Donatiello.
------------------
Rimuovere ANTI-SPAM per rispondere personalmente.

Newsgroup: it.comp.lang.c
Titolo: compilare per ottenere un'immagine binaria

Ho necessita di compilare un programma C non come exe o com, ma come
immagine binaria di quello che andra in memoria (per metterlo poi 
p.es
.
su eprom).
Qualcuno sa darmi qualche indicazione su come fare o che compilatore
usare ?
(programmi, opzioni del compilatore ecc.ecc.)
Grazie, Carlo
alt...@infostudi.it

 
Il linker GNU permette di descrivere il layout della memoria e forzare la
mappatura dei segmenti per ottenere codice assoluto. Puo generare oggetti
in vari formati compreso Motorola, eventualmente tramite  utiliti di
conversione tramite objdump. Io ho provato a generare un'immage boot-abile
da ROM con il DJGPP (GNU per MS-DOS, 
http://www.delorie.com/djgpp/
)
Non ho ancora provato il risultato finale programmando le EPROM, ma il
linker non mi da' errori e il file oggetto sembra a posto (ho verificato 'a
mano' gli indirizzi e un paio di jump - non ho provato perche' devo
rivedere il codice di boot).

Newsgroup: it.comp.lang.c
Titolo: Pdcurses, ncurses e nester

Ciao a tutti,
avrei la necessità di creare un'interfaccia per l'inserimento di
numeri, con campi predefiniti e una grafica organizzata a schermate
(usando C).
Usando abitualmente Linux ho pensato subito a ncurses applicato a
programmi come pppoeconf.
Ma dato che devo sviluppare sotto win... (windows 2000 per la
precisione) non saprei come orientarmi.
Qualcuno si è trovato nella mia stessa situazione? Sapete dove posso
trovare dei sorgenti che usino le librerie nel subject sotto win?
Ogni consiglio sarà ben accetto.
Grazie
Matteo

 precisione) non saprei come orientarmi.
Probabilmente ti sapranno rispondere su it.comp.programmare.win32, dato 
che qui si discute di C standard ma non di altre librerie.

 ha scritto nel messaggio
news:18b3f153.04041...@posting.google.com...


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

ciao
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 
mai sentito parlare di it.test ????
se vuoi fare test falli li'

prova
Newsgroup: it.comp.lang.c
Titolo: >> DDraw con LCC-win32 <<

>COMIX<<
----------------------------
Delphi, Musica e forse C....

> P.S: perche' il C e' cosi' casinista?  >-(
Non definirei il c casinista,ma "infinitamente" flessibile ed "estremamente
compatto" , insomma tutto ciò che  un programmatore degno di questo nome
dovrebbe essere.
Quindi forza e coraggio, la strada e' lunga ma....... molto interessante.
Per qualsiasi problema siamo tutti qui' pronti a darti una mano.
Ciao Ivan Molella.
--
Posted from 
qma...@DNS.MICANET.IT
 [194.243.45.3]
via Mailgate.ORG Server - 
http://www.mailgate.org

 wrote in message
3863E3D8...@micanet.net...

Newsgroup: it.comp.lang.c
Titolo: Puntatori void..

Scusate ma credo di non avere capito l'uso di puntatori void.
Come posso per esempio in questa funzione accedere ai
valori delle variabili con puntatori void?
#include<stdio.h>
int voido(void *puntcar,void *puntnum);
main()
{
 char c='y';
 int n=20;
 voido(&c,&n);
 printf("\n Numero %c     Carattere %d"  ,c ,n);
 return 0;
}
voido(void *puntcar,void *puntnum)
{
 *puntcar='w';          /*DJGPP segnala errori in compilazione.*/
 *puntnum=100;
 return 0;
 }

 valori delle variabili con puntatori void?
Non si può appunto perché non conosci il tipo puntato dal puntatore. E'
necessario convertire il puntatore a void in un puntatore al tipo
effettivo.
EMG

 }
Uno dei concetti piu' importanti dei linguaggi di programmazione e' il
*tipo* di dati.
puntcar e' un puntatore void, nel senso che non si conosce la
dimensione del tipo puntato (probabilmente non interessa conoscerla).
E' per questo che se si vuol accedere al valore puntato, bisogna
informare il sistema di *quanti* byte si vuol leggere dalla memoria.
Quindi occorre eseguire un cast.
*((char*)puntcar) = 'w' ;
*((int*)puntcar) = 100 ;
--
Andrea Laforgia (ICQ 87230455)
------------------------------ 
#exclude <windows.h>

Newsgroup: it.comp.lang.c
Titolo: [help] liste e funzioni...

ciao!
forse vi chiedo troppo, però c'è un errore che non risco a trovare:
questa funzione (cognomiPartecipanti) prende dei dati da un file, poi
crea una lista dinamica costituita (per ora) di un solo elemento.
poi chiama un'altra funzione x visualizzare la lista, però viene
visualizzato l'elemento sbagliato! dov'è l'errore?
void cognomiPartecipanti(char *file, int codice)
{
	FILE *f;
	ELEM *p;
	char s[15];
	int vet[3], i, n = 0;
	f = fopen(file, "r");
	while (!feof(f)) {
		fscanf(f, "%s", s);
		for (i = 0; i < 3; i++)
			fscanf(f, "%d", &vet[i]);
		for (i = 0; i < 3; i++)
			if (vet[i] == codice) {
				n++;
				if (n == 1) {
					p = malloc(sizeof(ELEM));
					p->cognome = s;
					p->next =
malloc(sizeof(ELEM));
					p->next = NULL;
				}
			}
	}
	visualizzaLista(p);
}
void visualizzaLista(ELEM *pStart)
{
	ELEM *p;
	p = pStart;
	do {
		printf("%s\n", p->cognome);
		p = p->next;
	}
	while(p != NULL);
}

ciao
l'errore penso sia qui:
p->cognome = s;

L'errore, secondo me, è quando assegni
p->cognome = s;
In questo modo assegni a p->cognome un vettore di caratteri che, alla fine
della procedura, viene liberato. Inoltre, in questo modo, se tu introduci
1000 cognomi nella lista utilizzando in questo modo le variabili, i 1000
cognomi faranno tutti riferimento al medesimo vettore s, dando quindi 1000
elementi uguali! Ciò che devi fare è usare la strcpy:
#include <string.h>
............
strcpy (p->cognome, s);
Solo un altro piccolo consiglio: nella funzione visualizzaLista il ciclo è
meglio farlo così
.........
while (p != NULL)
{printf ("%s\n", p->cognome);
 p = p->next;
}
...........
In questo modo funziona anche nel caso di lista vuota, nell'altro modo dà un
errore.
Newsgroup: it.comp.lang.c
Titolo: Controllo lunghezza array

Io ho variabili array, ad esempio:
char parola[10];
In immissione input l'utente mi scrive invece dieci capitoli del vocabolario.
Per controllare che non accada?
Uso il controllo con strlen e un if collegato?
Oppure?
Grazie ciao

 proclamavitque:

come hai intenzione di prenderlo, l'input?
se usi getchar(), read() o compagnia bella, in tutti puoi precisare quanti byte
vuoi leggere.
Se usi strdup() ti alloca lo spazio automaticamente.
Se usi scanf(), puoi controllarlo allo stesso modo in fase di copia con le
/n-functions/ (*nprintf() al posto di *printf(), strncpy() al posto di strcpy(),
etc..).
Se lo leggi da *argv[], allo stesso modo puoi utilizzare le funzioni di cui
sopra.
Insomma, che ci devi fare?
Adieu,
-- 
Lestat de Lioncourt  -- a.k.a --  Ciro Mattia Gonano
 Undergraduate student in Computer Science at University of Bologna
 IHGGer #1049   <=>  ICQ#: 52631406   <=>   URL: 
http://www.CS.UniBO.It/~gonano
 Debian admin at 
Students.CS.UniBO.It
 <=> look at headers for my JabberID & GPG

 Adieu,
Al momento sto facendo delle prove, un input che stampo per controllo a 
consolle, lemetto nelle variabili e le scrivo su file, quindi leggo il 
file... è un'azione ebete ma lo faccio per provare.
ps. scusate il doppio post ma google è ultralento
Newsgroup: it.comp.lang.c
Titolo: ' ' e \b

Ciao a tutti e grazie per le esaustive risposte avute negli altri post.
Ho creato un programma che deve stampare i tab, i backspace e i newline....
da un flusso di caratteri
tutto funziona...
ma per i backspace mi sembra strano che facendo
if(c == '\b')
++backspace;
non funziona....
invece
if(c == ' ')
++backspace;
funziona...
Per quale motivo non funziona la sequnza di escape \b mentre \n, \t
funzionano?
spero di non avervi rotto troppo, in effetti sto solo ripetendo il C. Ma
voglio studiarlo meglio.
Ciao e grazie ;)
----------------------------------------------------------
La forza del guerriero si può notare dalla forza del nemico

 ha scritto nel messaggio
news:w0pWb.31083$U4.11...@twister1.libero.it...


 ' ' funziona perchè è il carattere spazio!
non riguarda un file... ma l'stdin

 non riguarda un file... ma l'stdin
Colpa del sistema operativo. Visto che  lo stdin e` linebuffered l'OS ti
consente  di editare  la riga  di  input, inviandola  al programma  solo
quando premi invio.
Devi  usare una  funzione  (dipendente dal  tuo  sistema operativo)  per
indicare che vuoi lo stdin in modalita` "raw".
Luca
-- 
Home: 
http://kronoz.cjb.net
Tentare e` il primo passo verso il fallimento.
Homer J. Simpson

> da un flusso di caratteri
 >
 > Ma scusa, come fai ad avere un carattere backspace in un file??
Ad esempio tramite il seguente programma:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
     FILE *fp = fopen("test.txt", "w");
     if (fp == NULL) {
         return EXIT_FAILURE;
     }
     putc('\b', fp);
     fclose(fp);
     return 0;
}
A meno di errori, questo programma crea un file di nome test.txt 
contenente proprio il carattere backspace.

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

Salve a tutti,
in merito alla programmazione C esiste un IDE che mi consenta di creare 
anche interfacce grafiche tipo form...per MAC ?
Dicono e ho visto che XCODE con COCOA e Objective C sarebbe la 
soluzione...si ma quanto tempo ci vuole per imparare una nuova sintassi ?
Grazie

 si ma quanto tempo ci vuole per imparare una nuova sintassi ?
Venti minuti?

 Grazie
Ciao!
Newsgroup: it.comp.lang.c
Titolo: base 4

Questo č il 3 forum che scrivo questo post, non mi sembra cosě
difficile, spero che qualcuno mi aiuti...mi stavo chiedendo quante
posizioni possa occupare il numero massimo di tipo long int con la base
quattro,
mi spiego meglio, il massimo valore di unsigned long int corrisponde a:
ottale: 37777777777 11 posizioni 
esadecimale: FFFFFFFF 8 posizioni 
decimale: 4294967295 10 posizioni 
tetradecimale: ? 
ho fatto un semplice programma che mi aiutasse, non so nemmeno se č
giusto,
correggetemi se sbaglio, 
tetradecimale: 10000000000000000 17 posizioni 
questa č l'implementazione che ho usato: 
#include<stdio.h> 
void main (void){ 
unsigned long int x=0; 
char k=0,up=0; 
char quattro[40]; 
for(x=0; x<40; x++) 
quattro[x]=0; 
x=1; 
quattro[0]=1; 
while(x){ 
x++; 
quattro[0]++; 
while(quattro[0]>3){ 
quattro[up]++; 
if(quattro[up]>3){ 
quattro[up]%=4; 
up++; 
} 
else 
quattro[0]-=4; 
if(up>35){ 
printf("\n\nAbbiamo superato il limite dei 35 caratteri"); 
exit(0); 
} 
} 
up=1; 
} 
printf("\n"); 
for(x=0;x<40;x++) 
printf("%d",quattro[x]); 
getch(); 
} 
grazie e ciao
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 tetradecimale: ?
FFFFFFFF (16) = 1111 1111 1111 1111 1111 1111 1111 1111 (2) =
11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 (2) = 3333333333333333 (4)
quindi sono 16 posizioni
--
ZeD
Io, solo io, sempre io, anche io, nient' altro che io, proprio io

 
grazie


 tetradecimale: ? 
Tetradecimale č base 14, non 4.
-- 
Saluti,
    Mardy
http://castellina.org/interlingua
Newsgroup: it.comp.lang.c
Titolo: Lucchetti

Salve, ho il seguente problema:
Scrivere una funzione che prese in input due stringhe A e B stampi la
stringa corrispondente al lucchetto di A e B. Il lucchetto di due
parole si ottiene sommando la prima parte di una parola con la parte
finale di un altra, es. MAIs e sALE, diventa MAIALE. Io ho scritto
questo programma, è compilabile, ma non gira.... perchè?
#include <stdio.h>
#include <string.h>
int main () {
  int i;
  int l1, l2, l3;
  char v1[20];
  char v2[20];
  char v3[40];
  printf ("Inserisci la parola \n") ;
  scanf ("%s", v1) ;
  printf ("Inserisci la parola \n") ;
  scanf ("%s", v2) ;
  l1 = strlen(v1);
  l2 = strlen(v2);
  l3 = l1/2 + l2/2;
  l3 = strlen(v3);
  for (i=0; i=l1/2; i++) {
    v1[i]==v3[i];
  }
  for (i>l2/2; i!='\0'; i++) {
      v2[i]==v3[i];
  }
  printf("il lucchetto è: %s\n", v3);
  return 0;
}

 finale di un altra, es. MAIs e sALE, diventa MAIALE.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *getLucchetto(const char *s1, const char *s2) {
    char *result=0;
    size_t len1=strlen(s1), luksz=len1;
    while (s1[len1-luksz] && strncmp(&(s1[len1-luksz]), s2, luksz)) {
        --luksz;
    }
    if (luksz>0) {
       size_t i, len2=strlen(s2);
       result=calloc(len1+len2-2*luksz+1,1);
       snprintf(result, len1-luksz, "%s", s1);
       snprintf(result+len1-luksz, len2-luksz, "%s", s2+luksz);
    }
    return result;
}
int main()
{
    const char *a = "mais";
    const char *b = "sale";
    printf("getLucchetto(\"%s\", \"%s\") = \"%s\"\n", a, b,
getLucchetto(a,b));
    return 0;
}

      v2[i]==v3[i];
Idem.
Luca
-- 
Windows NT crashed.
I'm the Blue Screen of Death.
No one hears your screams.

Innanzi tutto grazie mille, davvero, a tutti e due...
Però adesso credo che dovrò affidarmi completamente alla risposta di
Andrea Laforgia, io non ho le capacità ancora di sapermi correggere...
Peccato.
Grazie ugualmente Kronos, almeno mi hai fatto capire perfettamente
cosa ho sbagliato ;)

        result=calloc(len1+len2-2*luksz+1,1);
 warning: incompatible implicit declaration of built-in function
'calloc'
non compila...



E' un warning, quindi compila, ma per non averlo devi rispettare
l'esempio, perché gli #include (nello specifico quello di stdlib.h)
non stanno lì per abbellimento :-)

 non stanno lì per abbellimento :-)
Si, ma è il programma ad essere sbagliato, la parola dovrebbe essere
maiale, e invece esce solo "ma"....
Cheppoi le parole in teoria andrebbero date da input, ma quello lo
posso anche sistemare io ;)
Grazie, scusa se insisto :P

maiale, e invece esce solo "ma"....
Sulla mia macchina il risultato è corretto.
Newsgroup: it.comp.lang.c
Titolo: Complessità di tempo, spazio e asintotica

Ho letto che x molti algoritmi ci sono valori che rappresentano la 
complessità di tempo, spazio e asintotica....sapete dirmi cosa sono e come 
si calcolano???
oppure avete qualche link dove posso andare a "studiarle"??
Grazie 

Anna ha scritto:

Non saprei, ma ho idea che un newsgroup sul linguaggio C c'entri come i
cavoli a colazione.
--
Cingar
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Cara Anna,
le nozioni di limiti asintotici li puoi trovare sparsi per la rete, su
centinaia di dispense... cerca e troverai sicuramente tutto. Io li ho
studiati per un corso di Algoritmi e di solito si punta molto
sull'ottimizzazione delle risorse in base al tempo. Per calcolarla esistono
diversi modi. Mi ricordo che c'č un "teorema fondamentale", che č semplice
da applicare oppure si utilizza la forma ricorsiva che di solito richiede la
conoscenza di serie matematiche. es: sapere qual č il limite della "Serie
1/n" e cosě via... Comunque cerca in rete.. trovi sicuro!

Newsgroup: it.comp.lang.c
Titolo: Esiste un NG su BCB in italiano ?

Ciao NG.
Volevo sapere se esisteva un Ng sul linguaggio c++builder.
Se invece preferite trattare tutto qui ho delle domande da fare:
1) Come si gestiscono i db in .dbf con builder.
2) Come faccio a gestire un lettore di codici a barre 
con il builder.
ciao e grazie

you wrote:

it.comp.programmare.win32
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
---------------------------------------------

Newsgroup: it.comp.lang.c
Titolo: CERCO CASE tools per specifica/test di programmi C

Vi prego aiutatemi, ne ho urgente bisogno......
Cerco anche tools per le Reti Di Petri.
Ovviamente meglio Shareware o Freeware.
                                                    Cap
--
To Replay remove !!!no-spam!!! from the address.
You can mail me at 
cap...@iol.it


Vai alla HomePage di Carlo Pescio, grande professionista nel campo
dello sviluppo sw, e leggi la sua sezione FAQ scorrendo sempre la sua
home-page. 
Elenca due CASE tool per analisi/progettazione uno commerciale e
l'altro shareware.  
Ciao, Luciano
http://www.programmers.net/artic/Pescio


Newsgroup: it.comp.lang.c
Titolo: Stringa in input come vettore

salve a tutti,
Premessa: sono alle primissime armi col c.
Problema: devo scrivere un programma che, accettando in input una stringa
numerica inserita dall'utente, calcoli quanti zeri sono contenuti in essa.
Proposta di Soluzione: ho pensato di considerare la steringa come un vettore
che ha come elementi i caratteri della stringa e con un ciclo for, un ciclo
if e un contatore risolvere il tutto.
Domanda: come faccio a considerare la stringa un vettore ? come faccio
quindi ad accedere ai caratteri che la compongono tramite un indice ?
Spero di essere stato abbastanza chiaro.
Grazie

 wrote in message
news:dfpQc.100482$5D1.5...@news4.tin.it...



<cut>
Grazie per entrambe le risposte !!! ;)
sei stato molto chiaro
Buone ferie !
Newsgroup: it.comp.lang.c
Titolo: xchè non funziona ??

Programma che legge delle stringhe e le scrive in un file di testo nuovo;
termina quando viene inserita una riga vuota.
------------------
#include <stdio.>
#include <string.>
int main() {
    char nome[100],riga[100];
    FILE* f;
    printf ("Specificare il nome del file:");
    scanf ("%s", &nome);
    getchar(); /* elimina '\n' dal buffer della tastiera */
    if ((f=fopen(nome, "w")) ==NULL)
        printf ("Errore apertura file\n");
    else {
        do {
            gets(riga);
            if (riga[0]!='\0') {
                strcat(riga, "\n");
                fputs(riga,f);
        }
    }while (riga[0]!='\0');
    fclose(f);
    }
    return 0;}
----------
E per leggere delle variabili all'interno di un file in C, e copiarle in un
nuovo file cosa devo aggiungere ??

 in un nuovo file cosa devo aggiungere ??
Leggi una riga con fgets dal primo file, ci fai quello che devi fare, la
scrivi  con fputs  sul  secondo file. Se  devi fare  un  parsing il  mio
consiglio e` di leggere tutta la riga  con fgets e poi fare la scansione
con sscanf, non utilizzare fscanf.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Non sempre quello che viene dopo e` progresso.
Alessandro Manzoni

 scanf("%s", &nome[0]);
E' meglio fare come dici tu ma ti faccio notare che &nome, essendo il
vettore definito in questo modo:
char nome[DIM];
restituisce il puntatore al primo elemento dunque non è un errore anche se,
ribadisco, è meglio fare come proponevi tu.
Ciao
Alessio C.

 ribadisco, è meglio fare come proponevi tu.
E' sbagliato dal punto di vista dei tipi restituiti.
&nome non e' assolutamente equivalente, da questo punto
di vista, a nome.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 di vista, a nome.
E' vero!! Ma allora mi domando ... perchè fare questa stranezza di far
restituire all'espressione <&nome> il puntatore a <nome[0]> senza
attribuirgli il tipo corrispondente?!?! A che mi serve se poi non posso
assegnarlo?!?!? A proposito che tipo restituisce <&nome>?
Ciao e grazie
Alessio C.

 attribuirgli il tipo corrispondente?!?!
Non e' affatto una stranezza e il tipo gli viene assegnato
eccome.  Se hai un array di 10 elementi, l'indirizzo dell'array 
e' un "puntatore ad array di 10 elementi", non e' affatto
equivalente al "puntatore a 1 elemento" come invece e'
&nome[0].  Il fatto che sia &nome che nome che &nome[0],
alla fine, producano lo stesso valore, non vuol dire che
le tre forme siano equivalenti.


Hai ragione :) non uso mai puntatori di questo tipo:
char (* pt_nome)[10];
e mi ero dimenticato della loro esistenza (Altra brutta cosa da confessare
;) ) ... a questo punto è ovvio che
pt_nome=&nome;
è una scrittura sensata al contraio di quello che ho detto io :)
Ciao e grazie per il ragguaglio
Alessio C.

     scanf ("%s", &nome);
Qui basta  scanf ("%s", nome);    "nome" è già di per se un puntatore,non
serve passargli l'indirizzo. Così crea lui la stringa inserendo
progressivamente i char nell'array.
Bye
Daniele
Newsgroup: it.comp.lang.c
Titolo: Allocazione

Come posso allocare in linguaggio C delle quantità di memoria elevate
come per esempio 64000 byte ?
Ho provato con farmalloc ma ugualmente il puntatore restituito è NULL.

...



Molto strano che tu non riesca ad allocare 64000 byte ( ...non e' poi
moltissimo)
Molto probabilmente stai usando un vecchio compilatore per Dos come ad es.
il Turbo C ( della 
Borland) .
Controlla il 'Memory Model' che stai utilizzando, questo deve essere
'Large' o piu. Se usi il comp. a linea di
comando mi sembra che sia di default. Se usi l'IDE potrebbe non esserlo.
Non ricordo piu' in che menu' stava sta' opzione, fatti un giro fra le
opzioni.

Newsgroup: it.comp.lang.c
Titolo: campionatura funzione

salve a tutti!
qualcuno mi sa spiegare cosa c'è di sbagliato in questa funzione?!!
il compilatore (dev c++) dice che non ci sono errori ma quando la vado ad
eseguire mi da "questo programma ha eseguito un'opreazione non valida e sara
terminato"!!!!!!!!!
#include<stdio.h>
/* Funzione di tipo float che campiona una funzione 2D */
void campionatura_2d(float a,float b,float c,float d,int m,int n)
{
int X, Y;
float x, y, passox, passoy;
float **fcampionata;
passox= (b-a)/float (n-1);
passoy= (d-c)/float (m-1);
x=a;
y=c;
for (Y=0; Y<=m-1; Y++)
{
for (X=0; X<=n-1; X++)
{
fcampionata[Y][X] = (x * y)/y-1;
x= a+ passox * float (X);
}
x= a;
y= c+ passoy * float (Y);
}
printf("L'insieme dei valori è:\n");
for (Y=0 ; Y<=m-1; Y++)
{
for (X=0 ; X<=n-1; X++)
{
printf("%.4f\t",fcampionata[Y][X]);
}
}
printf("\n");
}
/* Funzione chiamante main() */
main()
{
float a, b, c, d;
int m, n;
printf("Inserire estremi dell'intervallo sull'asse delle ascisse\n");
scanf("%f,%f",&a,&b);
printf("Inserire estremi dell'intervallo sull'asse delle ordinate\n");
scanf("%f,%f",&c,&d);
printf("In quante parti si desidera ripartire l'intervallo [%f,%f] della
X?\n",a,b);
scanf("%d",&n);
printf("In quante parti si desidera ripartire l'intervallo [%f,%f] della
Y?\n",c,d);
scanf("%d",&m);
campionatura_2d(a, b, c, d, m, n);
return(0);
}
--
che resta all'uomo del suo affanno in cui si affanna sotto il sole?

float **fcampionata;
em scusi.... questa é una matrice esatto ? se é così ...... MI PUò
DIRE DOVE STA LA MEMORIA ALLOCATA DI TALE MATRICE ?
se ho ben capito questa matrice ha dimensione X, Y
che a loro volta sono uguali a n-1 ed m-1
quindi devi fare float **fcampionata=new float[n][m];
se te lo permette........
Antonio

 che resta all'uomo del suo affanno in cui si affanna sotto il sole?
Per far funzionare il programma occorre:
- correggere i cast che non vanno scritti float(X) ma (float) X etc.
- allocare lo spazio per la matrice fcampionata.
Per n righe ed m colonne:
fcampionata = malloc(n*sizeof(float *));
for(Y=0; Y < n; ++Y)
   fcampionata[Y] = malloc(m*sizeof(float));
(l'operatore new dell'altra risposta č del C++ e non ha un corrispondente in
C)
HTH 
gfb

grazie a tutti

Newsgroup: it.comp.lang.c
Titolo: Vecchia funzione 'formatd'

Ciao a tutti.
Qualcuno di voi si ricorda cosa sono i due parametri 'volume' e 'type'
nella vecchia funzione del C (formattazione del disco):
        int formatd (unsigned char drive, char* volume, char* type)
(drive è il disco da formattare: 0-default, 1-A, 2-B, ....)
Dovrebbe far parte dello stesso gruppo della 'getdfree' (restituisce lo
spazio libero sul disco) del C Borland.
Nel Borland 4.52 ho trovato la 'getdfree' ma non la 'formatd'.
Nel Visual C++ Microsoft non ho trovato ne l'una ne l'altra.
Grazie a chi mi risponderà. Beppe

 Nel Visual C++ Microsoft non ho trovato ne l'una ne l'altra.
Non c'è neanche nel TurboC++ 1.01.
EMG


?? la formattazione di un disco non è qualcosa da integrare a livello
di librerie di compilatore... ma qualcosa che ognuno si scrive se ne
ha bisogno...

you wrote :
#?? la formattazione di un disco non è qualcosa da integrare a livello
#di librerie di compilatore... ma qualcosa che ognuno si scrive se ne
#ha bisogno...
Dove sta scritto ?
La routine di formattazione per una determinata piattaforma puo'
benissimo appartenere alle librerie di un particolare compilatore per
quella piattaforma.
Il fatto che non possa essere standard non significa che ogni
programmatore si debba scrivere la sua.
Andrea Laforgia        (
andrea_...@bigfoot.com
)
----------------------------------------------------
There is nothing better for understanding a kangaroo
than seeing it jump.
----------------------------------------------------
Newsgroup: it.comp.lang.c
Titolo: ngstatd : Statistics for it.comp.lang.c

*************************************************************************
*   Copyright (C) 2003 by kilobyte											*
*   kilobyte@email it														*
*																		*
*   ngstats 1 4 0-pre1															*
*   Home: www freelabs org												*
*   This program is free software; you can redistribute it and/or modify			*
*   it under the terms of the GNU General Public License as published by			*
*   the Free Software Foundation; either version 2 of the License, or				*
*   (at your option) any later version 											*
*************************************************************************
NgStat e' un generatore di statistiche per newsgroup che funziona sotto linux 
e sotto Pan 
Users ordinati per numero di post
+-----+---------- --------------------------------------------+------+--------+-------------+------
--+------------+
|Rank |User                          |Post  |Smiles  |NonStd Ascii |Bytes   |Lines Quoted|
+-----+---------- --------------------------------------------+------+--------+-------------+------
--+------------+
|1    | Andrea Laforgia alaforgia    |98    |4       |198          |28416   |307         |
|2    | Marcello                     |71    |33      |70           |28807   |690         |
|3    | Tommy                        |57    |4       |2            |27776   |366         |
|4    | Massimiliano Alberti xana    |56    |2       |187          |26052   |132         |
|5    |                              |50    |7       |1            |18853   |351         |
|6    | Giovanni Resta               |31    |5       |0            |29598   |188         |
|7    | Zeppe                        |28    |21      |1            |21300   |208         |
|8    | Enrico `Trippo' Porreca tri  |26    |2       |0            |10896   |283         |
|9    | Kronos                       |26    |10      |6            |17809   |170         |
+-----+---------- --------------------------------------------+------+--------+-------------+------
--+------------+
Post ordinati per numero di risposte
+-----+-------------------------------------------------------------+--------+
|Rank |Subject                       |Replyes |
+-----+-------------------------------------------------------------+--------+
|1    | free() non dealloca          |39      |
|2    | aiutino a un newbie          |36      |
|3    | Problema con socket e le     |36      |
|4    | C e C++                      |30      |
|5    | [LONG] Memoria, Puntator     |24      |
|6    | [LONG] Problemi con stri     |23      |
|7    | Bitwise, aiuto please!!!     |20      |
|8    | Problema con struct          |19      |
|9    | sono disperato!!!!(eserc     |17      |
+-----+-------------------------------------------------------------+--------+
+-----+-------------------------------------------------------------+--------+

ngs...@kilobyte.it
 wrote:
[CUT]
c'è ancora qualche problema di visualizzazione
... :(
-- 
KiloByte
Community: 
www.freelabs.org
Powered by Debian GNU/linux
Newsgroup: it.comp.lang.c
Titolo: client ftp

Ciao a tutti volevo sapere due cose su client ftp. Ne sto facendo uno e mi
sono bloccato sul comando dir, volevo chiedere a qualcuno se quando fa una
dir il client deve trovare una porta disponibile per e poi creare una nuova
connessione con il server e su questa nuova connessione creata trasmette i
dati!Grazie!
Mark

 trasmette i dati!
 
http://www.faqs.org/rfcs/rfc959.html
Max

Newsgroup: it.comp.lang.c
Titolo: Problemino con i puntatori.

Ciao a tutti,
premesso che č da un mesetto che mi occupo di programmazione in C (per cui
sono abbastanza inesperto), vi espongo il mio problema.
Ho scritto il seguente programma:
#include<stdio.h>
main(){
int n,i,a[100];
int *t;
int ass();
int *vett();
printf("Inserire la dimensione dell'array...");
scanf("%d",&n);
for (i=0;i<n;i++){
        printf("%s %d %s","Inserire l'elemento A[",i,"]...");
        scanf("%d",&a[i]);}
t=vett(a,n);
i=0;
while (i<n-1){
        printf("%d %.u\n",i,*t);
        ++t;
        ++i;
        }
}
int *vett(int a[],int n){
int i,b[100];
int *s,*r;
s=a;
for (i=0;i<n;i++){
        b[i]=*(s+i+1);}
r=b;
return(r);
}
ass(int n){
int a;
if (n>-n){
        a=n;}
    else{
        a=-n;}
return(a);
}
che dovrebbe servire per ordinare un array di numeri interi relativi
rispetto all'ordine decrescente del loro valore assoluto. La function *vett
ha il compito, dato un array e la sua dimensione, di restituire l'indirizzo
del primo elemento di un nuovo array ottenuto dall'input eliminando il primo
elemento.
Il problema č che se dal main tento di visualizzare il primo elemento del
nuovo array con l'istruzione: printf("%d",*t) tutto funziona, cosě come se
cerco di accedere ad un qualsiasi altro elemento.
Se invece voglio mostrare sul video TUTTI gli elementi dell'array con un
ciclo di tipo WHILE, mi viene mostrato correttamente solo il primo di tali
elementi., poi il programma comincia a dare i numeri, mostrando valori
assurdi, alcuni dei quali anche negativi!
Qualcuno puň spiegarmi dove sbaglio?
Grazie anticipatamente.
Arsenio

 elemento.
Il problema č che stai restituendo l'indirizzo del primo elemento di b, 
che č un array locale a vett(), ovvero non esiste piů quando vett() 
ritorna. Una possibile soluzione č passare alla funzione un secondo 
array da modificare.

 array da modificare.
Ok ma la funzione non può restituire al chiamante un array ma l'indirizzo
del suo elemento, vero? Mi fai capire come posso fare?
Grazie.Arsenio

 }
cosi' doovrebbe funzionare bene ... cmq si poteva ottimizzare meglio
sprecando meno variabili ed allocazioni ...
ciao
Newsgroup: it.comp.lang.c
Titolo: puntatori a funzioni

salve a tutti! ho provato i puntatori a funzioni e non ci sono problemi. 
ora volevo dichiarare un array di puntatori a funzioni ma il gcc ( uso 
linux ) non approva.
l' idea sarebbe di avere x funzioni identiche per interfaccia ma che fanno 
cose differenti, indicizzate da un parametro numeri in un file di 
configurazione. potreste dire "usa una funzione unica con switch e case all 
interno": si ma lo so gia fare :)
// dichiaro l' array di ptr ( il gcc non accetta )
char (*checksum_type)[7]( char *str );
checksum_type[0] = checkt_0;
checksum_type[1] = checkt_1;
c = checksum_type[choice]( stringa );
questo e' cio' che vorrei fare. si puo' o perdo tempo?
TIA
Ivan
-- 
The hieroglyphics are all unreadable except for a notation on the back,
which reads "Genuine authentic Egyptian papyrus.  Guaranteed to be at
least 5000 years old."

questo e' cio' che vorrei fare. si puo' o perdo tempo?
Si puo'... ma la dichiarazione e'
   char (*checksum_type[7])( char *str );
(ovvero la dimensione dell'array e' stata spostata
 dentro le parentesi)
HTH
Andrea

Newsgroup: it.comp.lang.c
Titolo: Esecuzione programmi

Che istruzione devo usare per lanciare un programma da un programma in
C?
Bye
ReD
Internet : 
re...@tin.it
Fidonet  : 2:333/1213.12
UIN      : 2502035
Home-page: 
http://space.tin.it/computer/feipr
<<ATTENZIONE: L'INDIRIZZO NELL'HEADER E' MODIFICATO>>
                   <<TOGLIERE 123>>

 C?
La cosa piu' semplice e' usare la funzione system(char* command), a cui
puoi dare una qualunque stringa che viene eseguita dal sistema operativo
?manu*

C?
Se usi il BorlandC puoi provare con Spawn...(e le sue varianti)
Andrea      
(per le risposte via e-mail togli CHITIHACHIESTONIENTE!!!! dal mio indirizzo)
ICQ# 8328956

C?
Dipende da che compilatore usi.
Con il QC:
	system("NomeProgramma");
      Ciao
      Michele


int system(const char *command) e' ANSI, quindi supportata da qualsiasi
compilatore degno di questo nome...
-- 
Warning!
Don't send any mail for me at my from: or replayto: addresses ;
I just kill the mail over there without reading!
Newsgroup: it.comp.lang.c
Titolo: Formati video...

Cerco informazioni dettagliate (Ita/Ing) sulla struttura interne di file
video AVI, AVI/DIVX e MPEG.
Grazie mille...
GiAn

Provato su 
wotsit.org
?
-- 
Quando noi ignoranti eravamo di piů, tutto era piů bello...
(A. Celentano)

Newsgroup: it.comp.lang.c
Titolo: sorgenti di sprintf / printf

Salve,
ho cercato su web i codici di sprintf / printf (mi era stato riferito che li 
avrei trovati)
ma la ricerca non ha avuto esito positivo.
Sapreste aiutarmi?
Grazie.
Ciao 

Marco ha scritto:

Provato in stdio.h? Se hai gcc lo trovi sicuramente...
Neo

Provato in stdio.h? Se hai gcc lo trovi sicuramente...
Il file stdio.h (come tutti gli header standard) NON contiene il
codice sorgente delle funzioni, ma solo la dichiarazione dei
prototipi.
I file header, come molte volte erroneamente chiamati, NON sono
librerie o sorgenti di libreria.
Tra i sorgenti del gcc, è possibile trovare anche i sorgenti della sua
implementazione della libreria standard, tra cui anche quello della
funzione printf() (che è in realtà è un wrapper per vfprintf()).

 funzione printf() (che è in realtà è un wrapper per vfprintf()).
Neo

 funzione printf() (che è in realtà è un wrapper per vfprintf()).
Perdonami, ma li ho cercati in 
http://gcc.gnu.org
 senza trovarli.
Hai un link diretto per favore?
Grazie.
Ciao 

 Sapreste aiutarmi?
Cerca le glibc.
Luca
-- 
Home: 
http://kronoz.cjb.net
Pare che gli uomini facciano l'amore di continuo e le donne solo
raramente. Ci dev'essere qualcuno che bara.

 Cerca le glibc.
Il gcc e` solo il compilatore.
Luca
-- 
Home: 
http://kronoz.cjb.net
Se non sei parte della soluzione, allora sei parte del problema.

Newsgroup: it.comp.lang.c
Titolo: Convertire double in frazione

Qualcuno sa dirmi come fare a convertire in maniera efficente un double in
due long che sono appunto il numeratore e il denominatore di una frazione ?
Io ho provato, ma non sempre riesco ad ottenere buoni risultati, forse per
problemi di approssimazione.
Vi ringrazio anticipatamente

 due long che sono appunto il numeratore e il denominatore di una frazione
?
scegli un denominatore arbitrario (ad es. 1000000)
e metti denominatore=1000000,numeratore=numero_double*1000000.0d,
poi calcoli il massimo comune divisore e li dividi entrambi per il MCD.
ciao

E come fai con 1/9 o frazioni illimitate ?


Io ho provato, ma non sempre riesco ad ottenere buoni risultati, forse per
beh sai alle medie insegnavano:
se il numero non e' periodico --> frazione decimale
se lo e' --> a denominatore tanti 9 quante sono le cifre del periodo e
tanti 0 quante quelle dell'antiperiodo
vedi se ti va bene come algoritmo empirico :-)
Tieni conto che in un double non avrai mai un numero effettivamente
periodico, bisognera' avere un algoritmo di scelta se ci assomiglia a
un periodico...

> E come fai con 1/9 o frazioni illimitate ?
in un double ovviamente 1/9 ESATTO non può esserci, ma arriva fino a un
certo punto (tipo 0.11111111111111111) di precisione. Percui il procedimento
è esatto per convertire da double a frazione. Per 1/9 basta che inserisci
direttamente i valori nelle variabili.
Newsgroup: it.comp.lang.c
Titolo: DLL in C

Ciao,
qualcuno ha mai creato delle DLL per il c?.
Mi servirebbe qualche esempio di utilizzo.
Grazie.


wrote:

penso che forse sarebbe + opportuno postare questo msg
su it.comp.programmare.win32
cmq ... per usarle devi caricarle in memoria tramite l'api
LoadLibrary .....
e poi leggere gli indirizzi delle api ed assegnarle alle funzioni
tramite GetProcAddress .....
cod

tramite GetProcAddress .....
Non e' strettamente necessario.  Si possono agganciare staticamente.
Comunque, per trattare questo tema, confermo i.c.p.win32.

Newsgroup: it.comp.lang.c
Titolo: [AIUTO] problema puntatori

salve a tutti
espongo il problema:
ho una struttura di questo tipo
struct list{
  int x;
  struct list *next;
};
ora io ho due elementi di un vettore allocato dinamicamente di tipo
struct list; ad esempio:
struct list *L;  /*variabile extern*/
/*tralascio l'allocazione dell'array*/
L[c].x=3
L[c].next->x=4;            /*primo elemento del vettore*/
L[c].next->next->x=2;
L[c].next->next->next=NULL;
L[c+1].x=3
L[c+1].next->x=8;            /*secondo elemento del vettore*/
L[c+1].next->next->x=5;
L[c+1].next->next->next=NULL;
in pratica io devo fondere questi due elementi (o meglio, al primo
devo unire il secondo) in questo modo;
L[c].x=3
L[c].next->x=4;            /*primo elemento del vettore*/
L[c].next->next->x=2;
L[c].next->next->next->x=8;
L[c].next->next->next->next->x=5;
L[c].next->next->next->next->next=NULL;
ma ho difficoltà a scrivere il codice dato che i puntatori non sono il
mio forte.
Qualcuno può aiutarmi scrivendo il codice per risolvere il problema ?
Così posso anche studiarmelo per cercare di capire.
Grazie 1000.
ciao.

 [snip]
Ma č un'array o una lista dinamica? Che roba č?
by LjL
ljl...@tiscalinet.it



č un array di liste dinamiche :-)

On Mon, 10 Feb 2003 17:19:17 GMT, so...@casa.mia (mela) wrote:

Io farei cosi'
[...]
(PuntLibero (  L[c] ->next )) ->next = L[c + 1] ->next;
 L[c + 1] ->next = NULL;
[...]
struct list *PuntLibero (struct list *tmp)
{ // Cerca il primo puntatore libero
while ((*tmp ) != NULL)
	{
	tmp = tmp -> next;
	}
return (tmp);
}
Occhio  alle  strutture  allocate.  questo  codice  sposta  solo  gli
indirizzi di partenza ma no fa la free di nulla.
Mi puoi spiegare che cosa rappresenta  questa  struttura  dati  cosi'
complerssa?
Ciao
GIGI
-- 
   THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
visit my home page:
http://web.tiscali.it/KilometroZero

 è un array di liste dinamiche :-)
list* L anche se allocato non è un array di liste dinamiche!
Caso mai è una lista.
L[c]-> qualcosa non può compilare neppure visto che L[c] resittuisce non un
puntatore ma una struttura. Non puoi applicare -> a una struttura, ma a un
puntatore di struttura.
Se vuoi un array di liste devi dichiarare list come
trypedef struct _list {
struct _list * next;
int x;
} *list;
e l'array di list come
list* L;
L  = malloc(...);
oppure
struct _list {
struct list *next;
int x;
};
list** L;
...
}
Newsgroup: it.comp.lang.c
Titolo: Lista a puntatori + stringa

Ho realizzato una lista a puntatori tramite una struttura in questo
modo:
typedef struct parol
{
  char *frase; //stringa?
  parol *succ;
}*ptrnodolst,nodolista,parole;
ptrnodolst psn,psnstart,psnaltro;
ptrnodolst creanodo()
{
  ptrnodolst psn;
  psn=(ptrnodolst)malloc(sizeof(nodolista));
  if(psn==NULL)
  {
    printf("Memoria insufficiente");
    exit(1);
  }
  return psn;
}
ma quando cerco di salvare:
psnstart->frase=stringa;
mi dà errore.
Ho provato a usare i caratteri al posto delle stringe nella struttura
e tutto funziona, perciò credo di non essere capace di dichiarare il
campo della struttura per contenere una stringa (frase dovrebbe essere
massimo 15 caratteri, ma l'errore persiste anche se scrivo frase[15]).
Grazie mille.
Bco°
----------------------------
ICQ: 30331316
E-mail: sbicelli@yahoo****.com
Homepage 32x32Icons: 
http://members.xoom.it/32x32icons/index.htm
----------------------------
Se qualcosa può andar male lo farà.
----------------------------

Il tuo problema e' dovuto al fatto che l'assegnazione viene fatta al
puntatore e non alla zona di memoria puntata.
Il codice corretto (occhio che non ho compilato) e' il seguente :
#include <stdlib.h>
#include <string.h>
typedef struct tagTParola {
                char *testo ;
                struct tagTParola *prossimo ;
        } TParola ; 
typedef TParola *PParola ;
void inserisciParola( PParola *TestaLista, char *testo ) 
{
     if ( *PParola = NULL ) 
     {
        *PParola = malloc( sizeof **PParola ) ;
        (*PParola)->testo = malloc( strlen( testo ) + 1 ) ;
        (*PParola)->prossimo = NULL ;
        strcpy( (*PParola)->testo, testo ) ;
     }
     else inserisciParola( &(*PParola)->prossimo ) ;
}
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
-----------------------------------------------------
"There is nothing better for understanding a kangaroo
 than seeing it jump." [D.Grune, C.J.H. Jacobs]
-----------------------------------------------------



      if ( *PParola = NULL )
Cosi' *PParola  (amesso che fosse un lvalue) sarebbe sempre NULL  :):)
Se vuoi ti posso consigliare qualche testo a riguardo............ :)
Scherzo ovviamente lo so che sono un paio di sviste.
Ivan Molella

     if ( *TestaLista =  NULL )Questa non me la perdo.. :):)
Be', in realta' deve essere : 
     if ( *TestaLista == NULL )
e bisogna sostituire a tutti i *PParola che ho usato, *TestaLista,
ovviamente.


Newsgroup: it.comp.lang.c
Titolo: [kdevelop] scompare il cursore nell'editor...

come da oggetto...
da cosa può dipendere?
smanettando un pò con la konsole e con i menu ritorna ma è enormemente 
fastidioso.
Ho incominciato ad usarlo (kdevelop) da poco... fino ad ora mi sono 
ambientato nell'ambiente ( ;-)) ) e proprio ora che ero "partito" in quarta 
con lo sviluppo ... questa rogna!
ciao e grazie.

 Ho incominciato ad usarlo (kdevelop) da poco
it.comp.os.linux.development
oppure chiedi sulla ml di kdevelop :)
-- 
Rhymes
rhy...@NOSPAMmyself.com
Newsgroup: it.comp.lang.c
Titolo: Acquisire teletext

Salve a tutti.
Ho visto che in giro ci sono "emulatori" di televideo, che CREDO
prendano i dati dal sito della rai (
http://www.televideo.rai.it/televideo/pub/index.jsp
 )
Io avrei bisogno di una versione modifita di tali programmi. Mi spiego
meglio: ho la necessità di registrare trasmissioni televisive
sottotitolate in inglese con il servizio 778. Ho la scheda di
acquisizione PcTV Pro, che usa il WebText, ovvero il televideo
visualizzato in un browser e che si aggiorna ogni 15/20 secondi, e
quindi il sottotitolo rimane invariato per 15/20 secondi, anche se la
persona continua a parlare. Per di più non si riesce a fare la
sovraimpressione del testo sul video.
Il mio intento era quello di scrivere da me un programma che prenda i
sottotitoli da internet (da un sito qualunque, o da un gateway o anche
dalla mia scheda tv stessa, visto che nel segnale dovrebbe essere
incluso anche il televideo stesso, è direttamente collegata
all'antenna!!! E il webtext funziona anche se non sono collegato ad
internet... Per cui credo che le informaziuoni televideo vengano prese
appunto dall'antenna.) Una volta presi i sottotitoli, in qualche modo
ci penserò io a visualizzarli in una finestra sempre in primo piano e
poi a registrare il tutto in mpeg o in avi.
Il problema è: da dove partire nella ricerca sul COME acquisire dati
televideo? Avete qualche consiglio? Preferirei acquisirli direttamente
dall'antenna, anche se non credo sia banale riuscire a scoprire il
come. A questo punto mi andrebbe benissimo anche prenderli da
internet... Avete qualche idea?
Grazie!
Ale

 internet... Avete qualche idea?
piů o meno...
cerca alevt e alevt-cap, guarda i sorgenti, ciao
-- 
none

Newsgroup: it.comp.lang.c
Titolo: HELP: Software per gestione clienti/accounts

Innanzi tutto scusate il crosspost sui vari gruppi, ma per la mia
inesperienza erano teoricamente tutti inerenti, ed ho pensato di
mandarlo a tutti.
Avrei necessita' di entrare in contatto con programmatori che abbiano
esperienza nella gestione di applicazioni di rete, o che possano darmi
dei suggerimenti.
Mi servirebbe un software da installare su diverse macchine client
facenti capo ad un server, i quali tramite un user-id e password
dovrebbero dare l'accesso all'utente per il tempo rimastogli
sull'account (dati presi dal server).
Se avrete la gentilezza di contattarmi in email sara' mia cura
illustrarvi con i dettagli necessari cio' di cui avrei bisogno.
Grazie per l'attenzione.
E. Gori
ne...@dada.it

