mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: Standard C e inizializzazione variabili globali!

Salve,
dato il seguente stralcio di codice c:
#include <stdio.h>
int a;
void main() {
    int b;
    printf("a vale: [%d] e b vale [%d]",a,b);
}
Ho verificato che a viene inizializzato sempre a zero e b invece assume un
valore 'sporco'.
Questo comportamento č dovuto dal compilatore o č qualcosa descritto nello
standard?
Nel caso fosse la seconda che ho detto vorrei sapere dove reperire dallo
standard la descrizione di tale comportamento!
Grazie

 standard la descrizione di tale comportamento!
6.7.8 Initialization
[...]
10 
If  an object  that has  automatic storage  duration is  not initialized
explicitly, its  value is  indeterminate. If an  object that  has static
storage duration is not initialized explicitly, then:
* if it has pointer type, it is initialized to a null pointer;
* if it has arithmetic type, it is initialized to (positive or unsigned)
  zero;
* if it is an aggregate, every member is initialized (recursively) according 
  to these rules;
* if it is a union, the first named member is initialized (recursively) 
  according to these rules.
Luca
-- 
Home: 
http://kronoz.cjb.net
"In linea di principio sarei indifferente al natale, se solo il natale
 ricambiasse la cortesia e mi lasciasse in pace." -- Marco d'Itri

Newsgroup: it.comp.lang.c
Titolo: C-robots

Ma qualcuno ne sa qualcosa? Le fanno ancora queste gare? Tutti i siti 
che ho visitato al riguardo sono aggiornati a qualche anno fa... :(
Maldoror.


in effetti la cosa pare un pò morta... però gruppi ce ne sono sempre... 
basta cercare un pò in rete. cmq trovi un casino di robots in giro con 
cui far gareggiare i tuoi!!
io giocavo qualche tempo fa

Newsgroup: it.comp.lang.c
Titolo: mea stragrandissima culpa

nella fretta e, forse per il sonno, ho postato male il giochino.
Scusate tanto.
La versione corretta e un pelino più antipatica e di difficile 
spiegazione è:
#include <stdio.h>
#include <stdlib.h>
int main(){
	double i;	
	for (i=0; i!=1; i+=0.1)
		printf("%lf\n", i);
}

 		printf("%lfn", i);
con printf() c'è promozione dei tipi, quindi si usa %f anche per i double.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Allora per punizione ora ci spieghi come mai se metti un incremento di 
0.1 non termina mentre se metti un incremento di 0.125 termina... ;-)
E.

 E.
Beh si vede che 0.125 si può rappresentare in virgola mobile esattamente 
mentre 0.1 no.
Spero sia corretta come spiegazione anche se so bene che i reali non 
possono essere rappresentati correttamente, credo ci possano essere dei 
casi in cui ciò sia possibile.
Ho ragione?
Per la verità mi pare che 0.1  è periodico nella rappresentazione 
binaria quindi non può essere rappresentato correttamente.
Più corretta o sbagliata?

 mentre 0.1 no.
Sì, esatto. 0.125 è una potenza di due...
E.

 mentre 0.1 no.
0.125 è una potenza negativa di due, quindi è chiaro che un incremento per
una potenza negativa di due produce risultati prima o poi rappresentabili
esattamente.


 
evvabbè dai me la son cavata :)
Andavo ad intuito cmq.
Newsgroup: it.comp.lang.c
Titolo: aiuto programmazione c

salve a tutti
sto cercando di studiare la programmazione in c
vi dico subito che le mie basi d'informatica sono poco e niente, comunque
sono un tecnico elettronico conosco i byte e mi so destreggiare bene con
linux e anche windows. due anni fa avevo compreato dei libri su java e avevo
incominciato a scrivere dei semplici programmi, pero' non sono arrivato
neanche a come un programma puo' leggere un file questo perche' mi scontro
con degli argomenti che per me a dir poco sono astratti.
adesso ho ripreso il discorso programmazione e voglio saper scrivere
programmi in c(java lo lasciato stare il c mi piace di piu') la piattaforma
che ho scelto e' linux
volevo sapere se qualcuno mi puo' consigliare alcuni libri da leggere
(anchio ne ho comprati tipo programmare in c dell'apogeo pero' mi pare
troppo scarso)anche per darmi un idea di cosa sia in realta la
programmazione.
grazie di un eventuale risposta


I'm not prejudiced, I hate everyone equally.

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

Dove posso trovare Winallegro ?
Saluti
-- 
Alberto Chessa 
ach...@fiar.finmeccanica.it

http://members.xoom.com/onestone/source/winalleg.htm
pero' potevi fare la fatica di andare su altavista e scrivere
+"Winallegro" :-)
ciao
- Pietro -


 > Saluti
Avevo provato solo Yahoo: un solo  match ad una pagina inesistente!

Alberto Chessa 
ach...@fiar.finmeccanica.it
Newsgroup: it.comp.lang.c
Titolo: Matrice dinamica di interi

buon giorno.Sono nuovo di questo ng, anche perchč č da circa un mese che
ho iniziato
a programmare. Volevo chiedervi una cosa: come faccio a dichiarare
un'array di interi
bidimensionale non-statico (dico bene dinamico?). Per farvi capire: int
*a. Cosi dichiaro una variabile di tipo puntatore ad interi
(monodimensionale). Poi nella main() scrivo: a=(int
*)calloc(n,sizeof(int)). <--Cosi  gli alloco la memoria. Beh, a me serve
sapere come fare queste cose su una matrice, se poi mi dite anche come
punto ad ogni elemento della matrice ve ne sarei ancor piů grato.
Scusatemi per la mia ignoranza. DaN
-- 
Posted from 
c000-h010.c000.muc.cp.net
 [209.228.29.34] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

On 21 Jan 2001 22:28:29 +0100, 
neme...@katamail.com
 ("NeM[e]SyS")
wrote:
Sinceramente non mi ricordo, magari puoi risolvere il problema usando
una matrice di char convertendoli mano a mano...
Quello che ti volevo suggerire era di prendere in considerazione
seriamente la necessita' di dimensionare dinamicamente una variabile.
Premesso che questo e' un punto di vista personale, credo che si
dovrebbero limitare il piu' possibile le allocazioni dinamiche perche'
potenzialmente pericolose... Nelle macchine di oggi, c'e' molta piu'
ram di una volta, non sempre si ha un vantaggio effettivo limitando in
questo modo lo spreco di memoria. Tuttaltro discorso per quei casi in
cui non si puo' fare altrimenti.
Per supportare questa tesi ti racconto due episodi che mi sono
capitati.
caso 1: un programma non rilasciava le risorse correttamente, dopo un
mese da quando l'avevo messo in produzione il server comincia a dare
segni di pazzia...
caso 2: una dll viene chiamata con un parametro dal valore anomalo, la
prima cosa che fa e' cercare di allocare un array da circa 20 mega...



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

	*(mat+conta)=malloc (sizeof (int) * 15);	/* 15 int */
...
Un'alternativa e':
  int i;
  int **mat=malloc(10*sizeof(int *));
  mat[0]=malloc(15*10*sizeof(int));
  for (i=1; i<10; i++)
    mat[i]=mat[i-1]+15;
in cui sono utilizzati solo due blocchi di memoria malloc
(uno per i puntatori a inizio riga e uno per tutti i dati).
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff
Newsgroup: it.comp.lang.c
Titolo: Aiuto modem

Salve a tutti,
    Nessuno sa come ricavare il numero dell'utente che chiama il mio
modem ???
    Come sistema operativo uso Dos o Linux .
grazie a tutti

    Come sistema operativo uso Dos o Linux .
magari basterebbe un modem digitale... :)

 magari basterebbe un modem digitale... :)
E' sufficiente avere un modem abilitato al CLI in standard italiano  (molti
dei modem V90 lo sono, anche se non tutti) e poi farti abilitare il servizio
da Telecom (attento: si paga un tot al mese).
Per visualizzarlo il modo più semplice è quello di abilitarlo con
l'opportuno comando AT (tramite un programma terminale, es. Hyperterminal di
Windows 95, in DOS io usavo Terminate, in Linux non so ) e tra il primo e il
secondo squillo, a terminale aperto, vedrai apparire, se tutto OK, il numero
del chiamante.
Su it.tlc.telefonia e it.hobby.elettronica se ne è parlato a lungo.
Per i comandi AT prova AT#CID=1  o AT#CID=2 per attivarlo (se rispondo OK
vuol dire che ha riconosciuto il comando)
Per vedere che modalità è attiva prova con  AT#CID?
P.S. a me risponde sempre che tutto va bene ma poi non va un fico secco
(mentre l'apparecchietto Telecom funziona ...).
Ciao, Carlo
c_al...@iol.it

Newsgroup: it.comp.lang.c
Titolo: variabili locali

Ciao a tutti,
mi spiegate la differenza fra le tre variabili a, b e c per quanto riguarda
il lifetime?
void funz()
  {
     int a;
    {
       int b;
     }
    {
      int c;
     }
   }
Valutando su due compilatori diversi ottengo che tutte le variabili sopra
specificate vengono allocate nello stesso momento, eppure non mi sembra che
lo standard dica questo.
E soprattutto, sempre per quanto riguarda l'allocazione, cosa succede se
entro - o esco - da blocco con un'istruzione di salto?
Ciao.

 lo standard dica questo.
Non so se lo standard parli di "allocazione"; di certo non puoi 
utilizzare b e c fuori dai blocchi nei quali le hai dichiarate ed a 
fuori da funz(). Prova a chiamarle tutte con lo stesso nome e vedi 
l'effetto che fa.
-- 
Baci,
Mony

Newsgroup: it.comp.lang.c
Titolo: è più facile

il c++ o phython?

 il c++ o phython?
 
sono facili tutti e due e ha poco senso farsi la domanda
 


...soprattutto in un ng sul C :)
 
ciao
Giacomo
 

 sono facili tutti e due e ha poco senso farsi la domanda
 
Non da leggere, però.
Python cerca di essere leggibile come principio di base nello sviluppo 
del linguaggio, mentre C++ invece… è C++.
 
-- 
Andrea
Newsgroup: it.comp.lang.c
Titolo: sulla funzione findfirst

Ciao! Sono un principiante. Come devo invocare la funzione findfirst per
ottenere lo stesso effetto di
"dir /ad"
cioč voglio ottenere solo i nomi di tutte le directory.
E se voglio fare una lista tipo "dir *.doc /s" ?
Antonio
abon...@telsa.it

 E se voglio fare una lista tipo "dir *.doc /s" ?
Devi scrivere una funzione basata sulla ricorsione che riapplichi se
stessa ad ogni directory trovata.
EMG

Ciao! Sono un principiante. Come devo invocare la funzione findfirst per
ottenere lo stesso effetto di
"dir /ad"
cioč voglio ottenere solo i nomi di tutte le directory.
E se voglio fare una lista tipo "dir *.doc /s" ?
Antonio
abon...@telsa.it



E se voglio fare una lista tipo "dir *.doc /s" ?
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
#include <dir.h>
#define TUTTI_ATTRIBUTI   FA_RDONLY | FA_HIDDEN | FA_SYSTEM | FA_LABEL |
FA_DIREC | FA_ARCH
long livello = 0l;
void naviga( char *nome_directory )
{
     struct ffblk info_directory;
     char nome[80], nomef[80], dir[80], ext[5], drive[5];
     int err;
     chdir(nome_directory);
     ++livello;
     _getdcwd(0, nome, 80);
     err = findfirst("*.*", &info_directory, TUTTI_ATTRIBUTI);
     while (!err)
     {
	   if ((info_directory.ff_attrib & FA_DIREC) &&
	       (info_directory.ff_name[0] != '.'))
	       naviga(info_directory.ff_name);
	   else
	   {
	       fnsplit(info_directory.ff_name, drive, dir, nomef, ext);
	       if (!strcmp(ext, ".DOC"))
		  printf("Trovato  \"%s\" in \"%s\"\n", info_directory.ff_name,
nome);
	   }
	   err = findnext(&info_directory);
     }
     if (livello > 1)
	chdir("..");
}
int main()
{
  char cwd[80];
  _getdcwd(0, cwd, 80);
  naviga("\\");
  chdir(cwd);
  return 0;
}
Andrea (mica uno qualunque...)
------------------------------
(se mi mandi la spam ti metto un'aspirina nella fanta...)
--
Posted from 
itaca.ulysse.it
 [195.223.254.1]
via Mailgate.ORG Server - 
http://www.mailgate.org

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







Ho da poco terminato la costruzione di una fresa a 
tre assi che utilizzerò, spero ,per il mio lavoro (mi occupo di 
liuteria)


ho dotato ogni asse di motore cc contollato in pwm 
ed encoder . Arrivato a questo punto sono riuscito ad interfacciare ogni 
generatore pwm al mio pc e sempre tramite quet'ultimo utilizzando gli irq riesco 
a leggere la posizione degli assi tramite gli encoders.


Mi sapreste indicare qualche sito dove trovare 
informazioni e/o algoritmi e/o programmi sull'interpolazione degli 
assi


 


grazie!



via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c
Titolo: macro

Se definisco una macro nel main poi la posso usare tranquillamente
# MYMACRO 10
int main(void)
{
int a=MYMACRO;
return 0;
}
ma perche', se la definisco in un altro file myheader.h che poi
includo dal main, non la vedo piu' nel main???
#include"myheader.h"
int main(void)
{
int a=MYMACRO;
return 0;
}  
E' un problema di settaggio del compilatore/linker (uso LCC)?

E' un problema di settaggio del compilatore/linker (uso LCC)?
Molto probabilmente si, dato che la tua definizione dovrebbe estendersi a
tutto il file che contiene main.
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
ICQ: 42227764
---------------------------------------------------------------------------



Newsgroup: it.comp.lang.c
Titolo: manipolare una frase in input da tastiera

Salve a tutti,
finora con le funzioni scanf, o getnchar (per la ncurses) riesco a salvare
dentro un array di char singole parole, infatti la scanf si ferma al primo
simbolo di spaziatura.
Come faccio ad infilare in un array una frase intera comprensiva di spazi?
il mio problema e' generale, ma in particolare dovro' poi usare la libreria
curses,
quindi mi sarebbe utile anche la funzione da usare con quest'ultima.
grazie a tutti!
francesco

 ha scritto nel messaggio
news:m8v39.168546$Jj7.3...@news1.tin.it...


 per leggere usi fgets
MAI usare la funzione gets(). E` mantenuta solo per compatibilita` con i
vecchi programmi. E` *pericolosa* dato  che non effettua alcun controllo
sulla lunghezza dell'input. Va rimpiazzata con fgets.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Recursion n.:
	See Recursion.
Newsgroup: it.comp.lang.c
Titolo: .RC --->> .EXE

Come faccio a linkare un file sorg. .RC in un file eseguibile .EXE??
Utilizzo Borland C++ Builder 3.
Grazie per l'aiuto.
--
bye bye by goldfix
---
Home Page: 
http://utenti.tripod.it/goldfix
Web Office: 
http://web.tiscalinet.it/weboffice
---
E-Mail: 
gol...@tin.it


Newsgroup: it.comp.lang.c
Titolo: Comando cls su winxp

Salve a tutti , devo usare il comando cls
in un prog C che gira su pc winxp.
Con  system("cmd cls") si riavvia la console,
se scrivo system("command cls") compare un errore ,
mi date un piccolo aiuto
Cosa devo scrivere. :-)
Ciao

Max wrote:

forse solo system("cls"); ?!?

 forse solo system("cls"); ?!?
... no, non funziona, cmq ho risolto.
Ciao

Newsgroup: it.comp.lang.c
Titolo: How to recive from COM port....

What I need to send to COM port to recive data from him...
Thanks in advance, Robert...;)


That depends by OS You are using....
Fow win, search for the SerialPort class
see:
http://msdn.microsoft.com/en-us/library/ms810467.aspx
Fow Linux, You have to open the serial device
(Ie: "/dev/ttyxxx") and simply use the
ioctl to set the desidered options, and
use read /write functions to access the data line.
See:
http://www.faqs.org/docs/Linux-HOWTO/Serial-Programming-HOWTO.html
Of couse, all code must be in c :-)
bb
Newsgroup: it.comp.lang.c
Titolo: Costante simbolica NULL

Come mai NULL è definita sia in stdlib.h che in stdio.h (in entrambe #define
NULL 0), ma anche in stddef.h? Quest'ultima poi in modo diversa dalle altre:
#define NULL ((void *)0), anche se, stranamente, nell'appendice del libro di
Kelly-Pohl le prime due sono commentate come puntatore nullo e la terza no?
Marco Iannaccone

 Kelly-Pohl le prime due sono commentate come puntatore nullo e la terza no?
Mi sembra che l'unica definizione standard sia #define NULL 0.
EMG


Se la definizione di NULL fosse 0x0 sarebbe lo stesso?
San Vegeta

 Se la definizione di NULL fosse 0x0 sarebbe lo stesso?
Dato che 0 e 0x0 sono lo stesso valore dovrebbe essere la stessa cosa.
Ma potrebbe anche darsi che il simbolo 0 significhi qualcosa di diverso
per il compilatore che non il semplice valore numerico. Io userei la
definizione standard e basta.
EMG

Se la definizione di NULL fosse 0x0 sarebbe lo stesso?
Certo.
Andrea Laforgia (andrea_...@XXXbigfoot.com)
------------------------------------------------
Il mio indirizzo di posta elettronica è inattivo 
per il momento.
Newsgroup: it.comp.lang.c
Titolo: [pointers] differenza tra dichiarazioni

Ciao a tutti,
se doveste spiegare con poche e semplici parole ad un "neofita" la 
differenza tra le seguenti notazioni:
x = 0;
int *p = x;
int* p2 = &x;
cosa direste?
Ciao e grazie,
Giulio
-- 
OnAir: L'Aura - "I'm with you"

 cosa direste?
Sarebbe più interessante se dicessi perché stai facendo questa domanda...
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Sarebbe più interessante se dicessi perché stai facendo questa domanda...
Mi sto scrivendo degli snippet "esemplificativi", corredati da ampie 
sezionid i commento. Rileggendo quello relativo al codice in questione 
ho notato che era troppo lungo e scritto in una terminologia 
assolutamente approssimativa. Volevo dunque chiedere consiglio a chi ne 
sa più di me.
Ciao,
Giulio
-- 
OnAir: L'Aura - "One"

 cosa direste?
La prima riga è un'assegnazione, le ultime due sono delle dichiarazioni 
con inizializzazione. Inoltre a seconda del tipo che ha la variabile x, 
solo una delle ultime due righe è sensata.
E.

Ciao ?manu*,
?manu* ha scritto:
[cut]
Rettifico l'esempio postato: data la dichiarazione
int x = 3;
come spiegherste con poche e semplici parole ad un "neofita" la 
differenza tra le seguenti notazioni:
int *p = x;
int* p2 = &x;
Ciao e grazie,
Giulio

 int* p2 = &x;
La seconda è l'assegnazione dell'indirizzo della variabile x a p2.
La prima non ha molto senso.


 La prima non ha molto senso.
A tal proposito ho trovato che il K-R dice:
int *ip;
is intended as a mnemonic; it says that the expression *ip is an int. 
The syntax of the declaration for a variable mimics the syntax of 
expressions in which the variable might appear. This reasoning applies 
to function declarations as well.


 A tal proposito ho trovato che il K-R dice:
Non ha senso perché stai cercando di assegnare un intero ad un puntatore.
E.



Quindi?

 Quindi?
Quello che sto cercando di capire è: perchè si dice che "non ha senso" 
la notazione utilizzata dal KR, tutto qui.


Giulio Petrucci ha scritto:

x = 3;
int *p = 3;
non ha senso perchè il tuo puntatore punterebbe alla memoria 
all'indirizzo 3. Questo tipo di assegnazione risulta realmente utile 
solo in casi estremamente rari.

 la notazione utilizzata dal KR, tutto qui.
Io non ho mai detto che non ha senso la *notazione*, io ho detto che non
ha senso quella *istruzione*, per i motivi che ti sono stati già detti.


Newsgroup: it.comp.lang.c
Titolo: Creare bootton con c++

Sono alle primissime armi e vorrei sapere come si creano  controlli
in un form.
Per adesso e' una mia curiosita.
Se sapete dove posso trovare esempi on line
grazie mille.
ciao
Alex


Consulta la documentazione QT trolltech.
La trovi con google in 2 secondi
Newsgroup: it.comp.lang.c
Titolo: C reference?

Salve!
Sono abituato a programmare con la documentazione *sempre*
sotto mano, e voglio portarmi dietro quest'abitudine anche
programmando in C.
Ho cercato dunque su internet una buona copia della 
documentazione della libreria standard del C in formato 
html. (per adesso mettiamo da parte il pacchetto 
manpages-dev)
Per adesso mi sono mirrorato sul computer le pagine pubblicate
all'indirizzo 
http://www.acm.uiuc.edu/webmonkeys/book/c_guide/
 ,
volevo chiedervi, voi quale usate? Me ne potete consigliare una 
in particolare?
Magari qualcuna dalla consultazione abbastanza "dinamica", nel
senso di coincisa, sintetica, ma non quasi assente...
Grazie in anticipo,
-- 
rzl


Io uso le man-pages... perché cos'hanno che non ti soddisfa?
Ciao!

 coincisa, sintetica, ma non quasi assente...
In genere la documentazione che utilizzo è l'header file e/o il sorgente 
dell'implementazione.
Newsgroup: it.comp.lang.c
Titolo: su Dev-c++

salve a tutti,
scusate se faccio una domanda probabilmente già posta da altri in passato,
ma non ho avuto occasione di leggere la risposta...
sto imparando ad usare il compilatore dev-c++; quando compilo il programma e
do l'esecuzione, la finestra dos si chiude subito senza darmi possibiltà di
controllare.Usando lcc-win32 questo non succede. C'è un modo per ovviare a
questo problema senza dover inserire codice nel programma?
Ho letto le faq di dev ma non mi sono state d'aiuto
spero possiate aiutarmi e intanto vi ringrazio anticipatamente

 wrote in message
bOd18.35015$cU4.1...@twister1.libero.it...



Non vorrei contraddire, ma questa è la soluzione delle faq, già provata e
non funziona. In particolare mi dice che non c'e' un riferimento a system;
inoltre non vorrei usare librerie per un semplice printf("ciao");
ti ringrazio cmq

 printf("ciao"); ti ringrazio cmq
Mi spiace ma se usi la printf... stai già usando una libreria:-)
Senza librerie puoi affidarti solo alle 4 operazioni elementari,
più altre poche cosette.... ma niente IO.
Quindi rassegnati :-)
Però dai ti sono venuto incontro... la getchar(); è definita
nella stessa libreria della printf... così ne devi usare una
sola :-)
Simon.

 wrotg:

1) faq di cosa? non del C standard visto che pause e' un comando dos.
2) la soluzione portabile che ti ha dato Simon necessita di una
piccola correzione solo: prima di stampare il messaggio e di fare la
getchar() dovresti svuotare il buffer della tastiera per essere sicuro
che non ci siano altre lettere in coda che possano interrompere la
pausa... per svuotare il buffer usa:
<CODE>
    while(getchar != '\n');
</CODE>
3) perche', la printf() non e' una funzione di libreria? Poi meglio
usare una funzione di libreria, che e' ottimizzata ai massimi livelli,
che una soluzione fatta in casa che in genere e' piu' dispendiosa di
ram e di CPU time.
Mox :)

Vi prego, mettete "Re:" per rispondere ai post non "R:"... non e'
standard e sul mio newsreader che segue l'RFC mi scombina tutto il
thread.... visto che non sono il solo con questo problema, ma la
maggioranza degli utenti usa un programma aderente allo standard se lo
correggi ci fai un favore grande grande :)
Mox

 </CODE>
Magari mettiamo le tonde :)
   while(getchar() != '\n');
Newsgroup: it.comp.lang.c
Titolo: assembler richiamabile c

Ho disperato bisogno di trovare le funzioni della stdlib.h, string.h,
stdio.h ecc. scritte in assembler richiamabili c.
Qualcuno mi sa dire se esistono delle librerie di assembler e dove
posso trovarle?
Ho postato il messaggio qui perche' non ho trovato nessun gruppo per
l'asm e siccome sono da richiamare in c...
Grazie a tutti.
Ciao
james

 stdio.h ecc. scritte in assembler richiamabili c.
Se ti servono in sorgente non ti so aiutare ma se vanno bene quelle
funzioni già compilate e funzionanti le trovi nella dotazione standard
di qualunque compilatore C.
EMG


Grazie, ma mi servono prorpio in sorgente.

di qualunque compilatore C.
Penso che stia cercando i sorgenti assembler da richiamare in C,
riaddattandone il codice sorgente (magari ricompilandoli con un macro
assemblatore)...
Se non ricordo male, il Borland C++ 3.1 forniva i sorgenti delle
routine della libreria standard.
Mi fu molto utile studiare i sorgenti per realizzare un programma in
assembler che sfruttasse quelle routine.

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

Newsgroup: it.comp.lang.c
Titolo: Puntatori... reciproci

Salve a tutti,
una curiosita': e' possibile creare due struct che si puntano 
vicendevolmente? Cioe', una struct "pippo" nei cui campi c'e' un puntatore a 
"pluto", e una struct "pluto" nei cui campi c'e' un puntatore a "pippo"? 
Come si potrebbero dichiarare?
Thx,
Pleg 



struct pippo;
struct pluto {
    struct pippo *pPippo;
};
struct pippo {
    struct pluto *pPluto;
};
Ma perché vuoi farlo? 

 Ma perché vuoi farlo?
Probabilmente perche' nno so programmare :-) sono un autodidatta che sta 
pian pianino imparando un po' di programmazione.
Il problema che sto affrontando: ho un buffer FIFO con dei messaggi che 
l'applicazione manda ad un processo ausiliario che comunica con un modulo 
radio (che a sua volta e' in contatto con una rete mesh di moduli simili, ma 
non e' importante). Ogni messaggio viene interpretato e crea dei pacchetti 
nel buffer, di vario tipo: pacchetti dati, pacchetti diretti al modem radio 
per configurarlo, ...
Il buffer lo implemento come una lista allocata dinamicamente; i nodi sono 
quelle struct di cui parlavo. Dato che ogni tipo di pacchetto ha dei campi 
specifici, per strutturare (anche visivamente, per me) meglio i campi li ho 
suddivisi in sotto-struct:
struct nodobuffer {
    - campi comuni a tutti i tipi di pacchetto
    - puntatore ad una struct coi campi specifici dei pacchetti dati
    - puntatore ad una struct coi campi specifici dei pacchetti modem
    - puntatore ad una struct coi campi specifici di ...
}
e per ogni tipo di pacchetto alloco solo la sotto-struct relativa. Mi 
sembrava di avere le cose organizzate meglio, ma forse e' una complicazione 
inutile.
Cmq, ad un certo punto mi sono reso conto che una di queste sotto-struct 
necessitava di un puntatore ad un "nodobuffer". Da qui il problema.
Pleg
Newsgroup: it.comp.lang.c
Titolo: Per coloro che sviluppano in PRO*C

Ciao a tutti coloro che usano questo PSEUDO-LINGUAGGIO.
L'oggetto di questo post č quello di trovare persone che proverebbero una
libreria C/C++ scritta completamente in PRO*C utilizzando tutti gli aspetti
dinamici di questo linguaggio.
Risultato: non usare piů il PRO*C all'interno del proprio codice sorgente,
non effettuare nessuna precompilazione, eliminare gli aspetti statici che
questo linguaggio comporta con l'aggiunta di nuovi campi.
Richiede la presenta di Oracle 8 o superiore in versione developer o
amministrazione per la 9i.
Corredata di una guida che spiega tutti i metodi ed esempi di uso. Vi
assicuro che ne vale la pena e soprattutto riduce il codice del 60-70%
rispetto a quello tradizionale con PRO*C.
E' una versione a un thread, ma per versioni complete non ci sono problemi.
URL: 
http://space.virgilio.it/jor...@virgilio.it
Grazie per l'attenzione
--------------------------------
Inviato via 
http://usenet.libero.it

 Ciao a tutti coloro che usano questo PSEUDO-LINGUAGGIO.
cosa sarebbe questo messaggio ??? pubblicita' per far migrare programmatori
???
non ho capito cosa volevi dire con tutto il messaggio ... mi pareva
pubblicita' ...
ciao

Beh è difficile parlare di migrazione nel vero senso della parola, perchè le
istruzioni del PRO*C, scritte in maiuscolo, dopo il processo di
pre-compilazione diventano istruzioni C e basta!
E una libreria free che ho creato e vorrei che venisse provata dagli
"addetti" al lavoro per vedere cosa ne pensano.
Tutto qui

Newsgroup: it.comp.lang.c
Titolo: cancellare una riga da un file

come c.... si fa ?
sui libri ci sono solo le funzioni per scrivere su un file ,
al massimo si può aprire un file in scrittura in modo da cancellare tutto il
precedente contenuto
ma io voglio cancellare solo una riga di un file di log
Ciao e grazie

 solo una riga di un file di log
  Se il file e` di testo, l'unico modo possibile e` copiarne tutto il
contenuto tranne la linea incriminata in una locazione temporanea e con
questa, poi, sovrascrivere il file originario.
	Alla prossima,
		Marco

Newsgroup: it.comp.lang.c
Titolo: [Newbies] C e Gui

Eccomi di nuovo a chiedere il vostro aiuto.
Chiedo scusa in anticipo per eventuali cavolate che scriverň, ma essendo
all'inizio non sň praticamente nulla.
Ho provato girando su google a cercare informazioni per fare programmini con
l' interfaccia grafica, ma purtroppo ho trovato molte informazioni, ma per
me troppo complicate.
Premetto che ho installato Dev-C++ e MinGV developer Studio (anche se con
quest'ultimo non riesco ancora a compilare).
Girando per google ho installato wxWindows 2.4.2 e Gtk, ma anche quě nulla
da fare.
Io vorrei solo fare delle piccole prove con le interfacce grafiche (tipo una
finestra con un messaggio), per cominciare a capire come funzionano e come
si lega il codice alle finestre, hai bottoni ecc...
Non esiste una guida in italiano per cominciare a masticare le interfacce
grafiche ?
Grazie mille a tutti delle risposte.
Ciao Morpheus

 grafiche ?
Esiste il buon tutorial di Alex Martelli.
Tuttavia, per domande attinenti questo tema rivolgiti a
it.comp.programmare.win32.
http://www.aleax.it/TutWin32/
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 grafiche ?
 >
"Interfacce grafiche" e' un po' generico: in ogni caso ti devi 
appoggiare ad una libreria, pertanto dovresti capire quale libreria ti 
si addice di piu' (magari perche' e' piu' facile da usare, oppure 
perche' meglio viene gestita dalla tua piattaforma di sviluppo) e 
cercare documentazione su quella.
Io uso GTK (in ambiente Linux), e mi ci trovo assai bene: ci sono 
widgets per un po' tutto, le stesse cose le posso fare tanto con C che 
con Perl senza troppe differenze, e la documentazione (nonche' le 
applicazioni sotto licenza GPL da cui attingere) e' abbondante, in 
inglese quanto in italiano.
-- 
Roberto -MadBob- Guido
mail bob4mail***@***
gmail.com
web 
http://madbob.homelinux.com
BrainTop Project maintainer - 
http://braintop.sf.net

 
http://www.aleax.it/TutWin32/
Grazie mille Andrea sei stato gentilissimo.
Ciao Morpheus


Grazie Roberto, cercherň informazioni piů approfondite su Gtk e win.
Ho provato ad installare il pacchetto Gtk, ma non sono riuscito a creare
nessun form.
Speriamo che funzioni bene anche sotto windows.
Grazie ancora.
Ciao Morpheus

 Ciao Morpheus
Ciao, comunque mi chiamo Xoen :)
-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Xoen
Jabber ID : 
xo...@jabber.linux.it
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 da fare.
... anch'io ho provato ad usare developerstudio , ma come si usi
o come compili , dove settare le variabili ,non l'ho capito. :-)
Ciao
Newsgroup: it.comp.lang.c
Titolo: comportamento syscall per porta seriale

ciao ragazzi ho notato una cosa alla quale (ignorantemente) non mi so dare 
una spiegazione e sarei grato a chiunque ma la chiarisse.
ioctl(fd,TIOCMBIC,TIOCM_DTR); (compila ma non funge)  
ioctl(fd,TIOCMBIC,&TIOCM_DTR); non compila. 
int control=TIOCM_DTR ; 
ioctl(fd,TIOCMBIC,&control); (compila e funge)
grazie.
Pierluigi

 scrisse:

La funzione vuole l'indirizzo di una variabile mentre nei primi due
casi veniva specificata una costante.
Poniamo (per esempio) che TIOCM_DTR si definito nel modo seguente:
#define TIOCM_DTR 5
il preprocessore trasformerà quello che hai scritto in:
ioctl(fd,TIOCMBIC,5)  ;5 indirizzo di una variabile..
ioctl(fd,TIOCMBIC,&5) ;illegale
int control=5 ; Assegna 5 alla variabile control
ioctl(fd,TIOCMBIC,&control) ;Passa l'indirizzo alla funzione, corretto
BassoLivello

 ha scritto nel messaggio
news:3d92f20c...@powernews.libero.it...

Newsgroup: it.comp.lang.c
Titolo: E' SCIOCCANTE

http://euronet.135.it
MK
JGK
K
KJHKJHK
JJK
KJ
KJ
K
K

Complimenti per il cross-posting publicitario.....
Duke

Newsgroup: it.comp.lang.c
Titolo: esercizi programazione in c

Problem 1 (vedi pipe.c)
Write a program which creates three child process P1, P2 and P3, and
pipes between the processes. Then P1 is to write a message to P2 who
passes it to P3 who then passes it to P1, and so on. Each time P1
receives the message he changes it.
#include <stdio.h>
 main()
{int fdes1[2];int fdes2[2];
 int pid;
  int i=1;
  int j=1;
 char buffer1[5];
 char buffer2[6];
 pipe(fdes1);   /*creating first pipe*/
 pipe(fdes2);   /* second pipe */
pid = fork();
if (pid==0){   /*child */
close(fdes1[1]);
close(fdes2[0]);
while(i!=0){
i=read(fdes1[0], buffer1,5);
printf("%d characters received by child= ",i);
buffer1[i]='\0';
printf("%s\n",buffer1);
}
close(fdes1[0]);
sleep(1);
write(fdes2[1],"Ciao, Papa!",sizeof("Ciao, Papa!"));
}
if (pid!=0) {                      /* in parent */
close(fdes1[0]);
close(fdes2[1]);
write(fdes1[1],"Ciao, Bambino!",sizeof("Ciao, Bambino!"));
close(fdes1[1]);
while(j!=0){
j=read(fdes2[0], buffer2,6);
printf("%d characters received by father= ",j);
buffer2[j]='\0';
printf("%s\n",buffer2);
}
   }
}

qualcuno sa come si fa questo esercizio?
grazie :)

 grazie :)
Un sacco di gente qui sa come si potrebbe fare, ma sicuramente nessuno 
ha voglia di fare i tuoi compiti a casa al posto tuo! ;)
Comincia ad abbozzare qualcosa e vedrai che ti daremo sicuramente dei 
suggerimenti su cosa non va e su come migliorare la tua soluzione.
ciao
Giacomo

 grazie :)
Questi Insubriachi che non vogliono imparare il C...
Chissà se Bob ne sarà contento...
:D
<Come l'ho trovato io.. lo può trovare anche Bob>
Newsgroup: it.comp.lang.c
Titolo: domanda sui puntatori

allora devo realizzasre un programma che prosi da tasitera n parole, formi 
una frase unica alla fine dinamicamente!io non so quante parole dovranno 
essere inserite, ma so che finirą quando verrą inserito il valore *.
praticamente posto il programma, voglio sapere perchč non mi stampa la frase 
finale, ma cose a vanvera!grazie
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char s[15];
    int a;
    int tot=0;
    char *temp,*temp2;
    char temp3;
    temp=(char *)malloc(tot*sizeof(char)+1);
    do{
         printf("inserisci parola\n");
         scanf("%s",s);
         a=strlen(s);
         if(s[0]!='*'){
            tot=tot+a;
            temp2=(char *)malloc(tot*sizeof(char)+1);
            strcpy(temp2,temp);
            strcat(temp2,s);
            temp=temp2;
            free(temp2);
         }
    }while (s[0]!='*');
   printf("cioa %s\n",*temp);
   system("pause");
   return 0;
}

             free(temp2);
Oltre a problemi di buffer overflow del programma, queste
istruzioni hanno qualche problema...
Con l'assegnazione
temp = temp2;
perdi l'indirizzo del blocco di memoria allocato in precedenza ed
ha due puntatori alla stessa area.
con free(temp2) liberi questa zona di memoria ed hai due puntatori
che puntano a memoria liberata.
quello che avresti dovuto fare era
    strcat(temp2,s);
    free(temp);
    temp=temp2;
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 printf("cioa %s\n",*temp);
Inoltre 
*temp
e' un carattere, non una stringa. Anche la printf e' sbagliata.


 ha scritto nel messaggio 
news:qBkQf.4087$nz4....@tornado.fastwebnet.it...


    temp=(char *)malloc(tot*sizeof(char)+1);
Via il cast dal valore di ritorno di malloc().
Inoltre sizeof(char) è _sempre_ uguale a 1, su qualsiasi piattaforma.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int isendstr(char *s) { 
    return strcmp(s, "*") == 0;
}
void nonl(char *s) {
       int len=strlen(s);
       if (s[len-1]=='\n') s[len-1]='\0';
}
void add(char **t, char *s) {
     char *p=malloc((*t?strlen(*t):0)+strlen(s)+1);
     if (p)
       sprintf(p, "%s%s", (*t)?*t:"", s);
     if (*t) free(*t);
     *t=p;
}
int main()
{
    char s[1024]={0}, *t=0;
 
    while (1) {
       printf(">");
       fgets(s, sizeof s, stdin);
       nonl(s);       
       if (isendstr(s)) break;
       add(&t, s);
    }
 
    printf("risultato: %s\n", t);
    return 0;
}

 void add(char **t, char *s)
che differenza c'è tra : char ** t  e  char *s ?
Ringrazio
Saluti

che differenza c'è tra : char ** t  e  char *s ?
Che uno è un puntatore a puntatore e l'altro è un puntatore...
Newsgroup: it.comp.lang.c
Titolo: RE: Acquisizione stringhe con spazi

Se devi acquisire una stringa contenente anche degli spazi devi utilizzare
la gets(variabile) dove variabile deve essere un vettore di char.
La scanf, al primo spazio inserito, blocca l'acquisizione.
Assicurati che il vettore di char sia ben dimensionato altrimenti potresti
incorrere in un buffer  overflow.
Ciao
Morgan

 incorrere in un buffer  overflow.
gets non andrebbe mai usata, c'e` fgets che esegue un controllo sulla
lunghezza dell'input.
Luca
-- 
Home: 
http://kronoz.cjb.net
"Sei l'unica donna della mia vita".
(Adamo)
Newsgroup: it.comp.lang.c
Titolo: problemi di stack con xp

sto portando un programma fatto sotto linux con gcc in windows xp con 
visual c++.
Quando provo ad eseguire il programma compilato in esecuzione mi da' un 
errore, mi dice che si verifica una eccezione di overflow dello stack.
Mi sembra molto strano che malloc sollevi una eccezione. Ho provato 
anche a impostare nel progetto che il linguaggio e' C e a disabilitare 
le eccezioni in stile C++ e le estensioni del linguaggio, ma continua a 
presentarsi il problema.
Avrei voluto fare una riecerca su google, ma non saprei di preciso cosa 
cercare.....
A qualcuno di voi e' mai capitata una cosa simile?
Inoltre sapete per caso come faccio a sapere nel momento in cui viene 
sollevata l'eccezione tutto quello che sta nello stack e le funzioni 
chiamate?
Grazie

 chiamate?
Usa un debugger interattivo (sicuramente il VC++ ne abbia uno): avvii il
programma in modalita` debug. Se genera l'errore, il debugger ti porta
immediatamente nella riga di codice che lo ha generato e puoi guardarti
il contenuto delle variabili, dello stack, ecc.

 il contenuto delle variabili, dello stack, ecc.
se il problema è nello stack stesso, dubito che la finestrella "call
stack" del VC++ contenga dati affidabili... :P
in effetti se malloc solleva un'eccezione è ben grave, in genere non
dovrebbe farlo; comunque disabilitare le eccezioni stile C++ non
servirebbe a nulla per due motivi:
1) le eccezioni sono implementate anche nelle estensioni Microsoft
dell'ANSI C (blocco __try): si tratta di estensioni che rendono l'ANSI C
molto simile al C99 e che si possono disabilitare, ma disabilitarle non
servirebbe a niente per il secondo motivo
2) se malloc da un errore deve trattarsi di qualche errore di memoria
grave, quindi probabilmente a un certo punto l'eccezione verrebbe lanciata
dal SO o dalla CPU stessa, e anzi ora che ci penso avviene sicuramente
così perché le librerie standard devono potersi compilare anche in ANSI C,
quindi malloc non può lanciare nessuna eccezione.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 [...]
oggi sto messo proprio male...
scusatemi per le corbellerie, ho letto solo ora che si tratta di stack
overflow: probabilmente usi una funzione troppo ricorsiva, prova a
cambiare algoritmo oppure ad allargare le dimensioni dello stack (meglio
la prima soluzione). se si tratta di funzione troppo ricorsiva il
contenuto della finestra "call stack" è sicuramente valido, e ti potrà
essere d'aiuto per il debug (probabilmente vedrai una marea di frames
identici per la stessa funzione).

Newsgroup: it.comp.lang.c
Titolo: libro su algoritmi in C

Chi è che mi può consiliare qualche libro che tratti l'implementazione di
algoritmi particolari in C?

algoritmi particolari in C?
Io mi sto leggendo "Algoritmi in C", di Robert Sedgewick,
Addison-Wesley Masson, 1993, ISBN 88-7192-048-1, Lit 74000
L'ho preso ieri, ma non mi sembra male. Tutto sta a capire cosa
intendi per algoritmi particolari...
-- 
 (o-  | Un OS per domarli, Un OS per trovarli,
 //\  | Un OS per ghermirli e nel buio incatenarli
 V_/_ | Nella terra di Redmond, ove l'ombra cupa scende...
Tessera 99ers 204           raffaele punto salmaso presso libero punto it

--
Ciao,
questo libro l´ho usato anche io, ma nel capitolo 24.4 riguardante
l´inclusione in un poligono vi e´ un baco, nell´implementazione della
funzione inside.
L´ho copiata pari pari e ho fatto un esempio di un poligono sufficientemente
complesso e concavo cosi´ come nei disegni nel libro, e in alcuni casi la
funzione restituiva un valore sbagliato, dicendo che il punto passato era
dentro al poligono quando era fuori o viceversa.
Altre cosette che non ricordo in alcuni capitoli precedenti...in sostanza
libro deludente.
MaurusAP

 ha scritto nel messaggio
news:uo9tctkbsospqtqou...@4ax.com...

Newsgroup: it.comp.lang.c
Titolo: Manuale C++

Ciao,
    sapete se in rete posso trovare un buon manuale di C++? anche sotto
forma di dispense, purchè scaricabili in pdf et similia..grazie,
    a.



Posta la domanda sul newsgroup giusto, e magari leggiti prima le FAQ.
Ciao,
Riccardo
-- 
-=Riccardo Galli=-
Newsgroup: it.comp.lang.c
Titolo: Aiuto gioco in ASCII

Vorrei fare un gioco in ascii, avrei bisogno di un pò di consigli. In
particolar il mio problema è il keypressed del turbopascal che non
ritrovo in C. Questo per rilevare la pressione di un tasto e
interpretarlo (ad esempio le frecce direzionali per "muovere" il
personaggio). Oppure la visualizzazione su schermo, con un ciclo che
ridisegna tutti i caratteri ogni ciclo di programma mi sfarfalla
troppo, non c'è un altro modo?
Thxs in advance.
Rex.
P.s. Il gioco in questione è asteroids ^_^

 Vorrei fare un gioco in ascii, avrei bisogno di un pò di consigli. In
Non si può fare in ansi-c
Ti servono delle librerie di grafica testuale, come per esempio le ncurse
Ciao,
Ema

 
Le ncurse son per linux da quanto leggo sui siti, non c'è un punto di
riferimento su come usarle? Io vorrei cmq fare qualcosa in dos.
Ho provato anche le Turbo Visual ma non riesco a usarle.
Grazie.
Rex
Newsgroup: it.comp.lang.c
Titolo: Password

Salve
ho sentito parlare di un programma che rileva la
password selezionando gli asterischi.Esiste?
E' possibile rilevare le password POP3
nel registro di configurazione
HKEY_CURRENT_USER\Software\Internet Account Manager\Accounts
Saluti
Giacinto

 wrote in message
7bh7cc$frb$4...@nslave1.tin.it...

Ho appena comprato oggi PG-Magazine, recensiscono una unitlity chiamata No
More Secrets presente sul CD allegato che ti fa vedere le password
memorizzate da win95, cioe' quelle che appaiono gia' quando apri un form,
come una serie di asterischi.
Nome: NMSecrets
Prezzo: freeware
Contatto: 
NMSe...@poboxes.com
ciao
donCiccio

...

Stamattina ho acquistato PC-MAGAZINE, si parla
del programma in questione, ma sul CD non sono
riuscito a trovarlo.Grazie lo stesso.
Ciao
Giacinto

riuscito a trovarlo.Grazie lo stesso.
Ti chiedo scusa alla ennesima potenza, non avevo verificato la reale
presenza sul CD.
Jackson, vatti a fidare....
ciao
donCiccio

>>password selezionando gli asterischi.Esiste?
Io ed un mio amico ce lo siamo scritti in VB e ci abbiamo messo 5 minuti:
difatti non è difficile, la password in questione non è criptata ma è solo
nascosta dietro gli asterischi, inviando alla text-box in questione (devi
trovare il suo handle) un messaggio di "reset to default" (ovvero di tornare
alla normalità) gli asterischi non verranno + mostrati e al suo posto
compariranno le lettere.
Newsgroup: it.comp.lang.c
Titolo: Mail in c

Sapete dirmi come comunicare con un server in c? Vorrei fare un client di
posta...

 posta...
Per far questo devi inoltrarti nella programmazione dei socket. 
Prova a vedere in questi link:
 
http://www.faqs.org/faqs/unix-faq/socket/
http://www.uwo.ca/its/doc/courses/notes/socket/

 posta...
Per far questo devi inoltrarti nella programmazione dei socket. 
Prova a vedere in questi link:
 
http://www.faqs.org/faqs/unix-faq/socket/
http://www.uwo.ca/its/doc/courses/notes/socket/
http://www.linuxlinks.it/programmazione.html

posta...
Scegli il sistema sotto cui vuoi svilupparlo e chiedi al NG che tratta
di sviluppo di applicazioni sotto quel sisop.
In linea di massima devi usare le primitive di comunicazione in rete
(es socket, winsocket) e poi studiarti l'RFC sulla mail (non chiedermi
quale sia che non lo ricordo).
Mox :)
Newsgroup: it.comp.lang.c
Titolo: algoritmo poco chiaro..

Ciao ragassi
potreste mica spiegarmi quest'algoritmo? nn vuole proprio entrarmi in testa,
serve per invertire una lista
 LIST *prev = NULL, *suc;
 while(root != NULL)
 {
  suc = root;
  root = root->next;
  suc->next = prev;
  prev = suc;
 }
 root = prev;
questo è ciò che ho capito...
alla prima iterazione "suc" conterrà l'indirizzo della radice della lista
root che è la radice si "sposta in avanti", cioè, punta all'elemento
successivo..
si fa in modo che l'elemento successivo a suc, che dovrebbe essere l'attuale
ROOT, punt a NULL . Dopodichè a prev viene assegnato l'indirizzo di suc.
ma alla seconda iterazione il valore di suc viene cambiato cn la NUOVA root,
pertanto non si va a formare una nuova lista in SUC come pensavo che fosse,
poiché suc cambia ad ogni iterazione giusto? quindi come m**kia fa a
invertire la lista ?
scusate l'idiozia ma sono un po' rintronato in questi ultimi tempi
grazie!!

 root = prev;
Proviamoci :)
ROOT -> 1 -> 2 -> 3 -> 4 -> NULL
Invertirla vuol dire fare:
ROOT -> 4 -> 3 -> 2 -> 1 -> NULL
Potresti anche vederla cosi':
NULL <- 1 <- 2 <- 3 <- 4 <- ROOT
Vista cosi' si tratta solo di invertire il senso della link tra 2
elementi.
Al primo passo prev varra' null, quindi la prima iterazione sara':
1.next = NULL  /* giusto: l'ultimo elemento punta a NULL */
root = 2;      /* il next della vecchia root */
2.next = 1;    /*la vecchia root*/
prev = 1;      /* la vecchia root */
Graficamente:
prev -> 1 -> NULL
ROOT -> 2 -> 3 -> 4 -> NULL
Nota: non ti interessa sapere dove punta succ, all'inizio di ogni
iterazione cambia.
A ogni passo prendi l'ultimo nodo che non hai ancora invertito (al
passo attuale sara' il nodo 2), ti segni da qualche parte il puntatore
a next (nella root nuova) per non perderlo e gli assegni il
predecessore:
2.next = prev  /* in questo caso prev == 1 */
L'idea di fondo e' che a ogni passo giri il verso di una freccia.
Spero di essermi spiegato.
-- 
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."

 Spero di essermi spiegato.
credo di aver compreso la situazione, a forza di rileggere la capirň del
tutto:-P
grazie mox;-)
Newsgroup: it.comp.lang.c
Titolo: Aiuto urgente !

Ciao a tutti !
avrei bisogno di qualcuno esperto che riuscisse ad interpretare questa
scritta:
Runtime error 200 at 0E9E:0091
Mi appare quando faccio partire un file .exe
(solo una volta o due è partito correttamente, è un programma che consiste
in quel solo file)
Se avete delle soluzioni a questo fatto per me inspiegabile rispondetemi su
timeb...@freemail.it


timeb...@freemail.it
Ti ho risposto su it.comp.lang.c++ ...
Comunque trovo molto maleducato il chiedere a gente interessata a
discussioni sul linguaggio C o C++ di perdere tempo per risolvere
i tuoi problemi (che con il C o il C++ non centrano proprio nulla)
e addirittura di farlo scrivendoti via posta elettronica.
Probabilmente il tuo tempo e' troppo prezioso per "sprecarlo"
leggendo eventuali risposte nei newsgroup vero ?
Ok la disperazione (e passi il posting off-topic) ma la richiesta
di risposta via email non giustificata e' pura cafoneria.
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

Senza contare che il run time error dipende dal programma che hai fatto te,
percio nessuno ti puo aiutare se non gli passi il programma, e di certo ci
vogliono i sorgenti, non sapere la posizione dell'errore, senno diventi
matto sul serio!
Dome

> Senza contare che il run time error dipende dal programma che hai fatto
te,
Non esattamente. Esistono molti casi in cui non è il tuo programma a doversi
occupare di alcuni errori di run-time.
"memoria insufficiente per eseguire il programma" è considerato un errore di
run-time, ma non è l'autore del programma che se ne deve occupare ma
l'utente finale. L'eventuale mancanza di un file di programma collegato al
software viene spesso considerato come errore di run-time, ma nemmeno in
questo caso il programmatore se ne deve occupare.
D'accordo che molti errori di logica, come un eventuale divisione per zero,
possono avere ripercussioni sul run del programma, ma gli errori di run-time
per definizione sono legati a eventuali comportamenti anomali durante
l'esecuzione - su questo siamo di comune accordo - In linea generale sono
più collegati all'ambiente di esecuzione che al programma sviluppato.
Benché alcuni linguaggi prevedano classi o oggetti per gestire situazioni
anomale relative ai run-time error, in molti casi un loro utilizzo risulta
ridondante.
D'accordo che ci sono situazioni che ne possono giustificare un eventuale
controllo, ma in linea di massima sono da evitare.
Ciao.