domanda sulla funzione main() del linguaggio c
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- gallows
- Staff

- Messaggi: 3471
- Iscritto il: lun 20 set 2004, 0:00
- Desktop: cwm
- Distribuzione: OpenBSD
- Località: ~/
- Contatta:
Ovvio, ti faccio un esempio banale:dark0s ha scritto:L'exit status se c'è ci sarà un motivo...
Codice: Seleziona tutto
$ ./a.out && echo "tutto bene"- useless
- Staff

- Messaggi: 3896
- Iscritto il: dom 12 ott 2003, 0:00
- Località: A place where the streets have no name
- Contatta:
come ho già fatto altrove, sfatiamo anche qui questo mito: main DEVE ritornare un int, anche se in teoria potrebbe non farlo, xké gli standard C vogliono così, e non mi pare una cosa molto faticosa adempierli... tra l'altro, invece di 0 e 1 andrebbero persino usate le definizioni EXIT_SUCCESS e EXIT_FAILURE definite in stdlib.h. e il valore di ritorno di main, come dice gallows, non è affatto inutile! prendete un qualsiasi programma di quelli che usate normalmente e guardate se main ritorna qualcosa o no!
quanto alle assegnazioni:
char antani[] = "antani";
si possono fare, ma solo durante le dichiarazioni. nel corpo del programma bisogna usare strcpy (meglio strncpy), sprintf (meglio snprintf) o altre funzioni simili, x scrivere in una stringa. inoltre, come qualcuno faceva già notare, c'è una sottile differenza tra:
char antani[] = "antani";
e
char *antani = "antani";
anche se x quanto riguarda argv, è meno importante, xké di solito non si modificano gli argomenti passati sulla linea di comando.
infine, vi ricordo che x la discussione in materia di programmazione, c'è progForum: http://www.nogood.it/prog/.
(lorys, se ti da fastidio che pubblicizzi progforum qua dimmelo pure).
quanto alle assegnazioni:
char antani[] = "antani";
si possono fare, ma solo durante le dichiarazioni. nel corpo del programma bisogna usare strcpy (meglio strncpy), sprintf (meglio snprintf) o altre funzioni simili, x scrivere in una stringa. inoltre, come qualcuno faceva già notare, c'è una sottile differenza tra:
char antani[] = "antani";
e
char *antani = "antani";
anche se x quanto riguarda argv, è meno importante, xké di solito non si modificano gli argomenti passati sulla linea di comando.
infine, vi ricordo che x la discussione in materia di programmazione, c'è progForum: http://www.nogood.it/prog/.
(lorys, se ti da fastidio che pubblicizzi progforum qua dimmelo pure).
- TheSnowBoarder
- Linux 1.x

- Messaggi: 139
- Iscritto il: gio 30 giu 2005, 0:00
- Località: Catania
Un puntatore costante, così come qualsiasi altra variabile definita costante tramitedark0s ha scritto:Per TheSnowBoarder:Cosa intendi per puntatore costante?...puntatore costante
Codice: Seleziona tutto
const Cercare quindi di assegnare un valore ad una variabile in sola lettura genera un immediato segmentation fault : il programma riceve SIGSEGV e viene terminato.
Esempio:
Codice: Seleziona tutto
char vettore[20]; /* vettore è un const char * */
char * puntatore ;
puntatore = vettore ; /* Ammissibile */
vettore = puntatore ; /* SIGSEGV !!!! */
