[C] If con comportamento assurdo.


Rispondi
    Rispondi citando

GenKs » Gio Set 09, 2010 10:57 am

Uriel_Science ha scritto:
Uriel_Science ha scritto:
Uriel_Science ha scritto:Ehi GenKs,

ne ho scritto un'altro di codice XD.....
Codice: < >
#include <stdio.h>
int i;
int main(int argc, char **argv){
   for (;i["**[+i].i({2+5}/2);"];)
      write( 0x00&&(!('-'-'-')),
      i+++"WolfOtakar Forum!\n",
      (0xFE||(!('-'/'-'))));
return 0;
}


Ditemi cosa ne pensate! Wink


Genks il codice è stato compilato con gcc ed è perfettamente funzionante su linux.... XD


Avevi ragione c'era una parentesi graffa in piu...... XD Sorry


E di che cosa? xD Comunque penso che I si debba inizializzare(o sbaglio?) su win ho incluso unistd.h per write e non stdio.h e comunque non mi da nessun output...

GenKs
User Newbie
User Newbie
 
Messaggi: 13
Registrato: 08/09/10 21:42
    Invia messaggio privato Profilo  

    Rispondi citando

Uriel_Science » Gio Set 09, 2010 11:16 am

ehi genks.... guarda qui... XD
Purtroppo nn utilizzo windows e quindi nn so perché ti faccia quel difetto.... Confused

ad ogni modo guarda qui... 0 warnings e 0 errors:

http://img521.imageshack.us/img521/1671/immaginewz.jpg

Wink

_________________
www.uriel1988.altervista.org


Uriel_Science
Programmatore
Programmatore
 
Messaggi: 285
Registrato: 05/01/09 11:56
    Invia messaggio privato Profilo  

    Rispondi citando

GenKs » Gio Set 09, 2010 11:29 am

Uriel_Science ha scritto:ehi genks.... guarda qui... XD
Purtroppo nn utilizzo windows e quindi nn so perché ti faccia quel difetto.... Confused

ad ogni modo guarda qui... 0 warnings e 0 errors:

http://img521.imageshack.us/img521/1671/immaginewz.jpg

Wink


Strano... proverò a compilarlo da ArchLinux. Ti faccio sapere. Smile

GenKs
User Newbie
User Newbie
 
Messaggi: 13
Registrato: 08/09/10 21:42
    Invia messaggio privato Profilo  

    Rispondi citando

Uriel_Science » Gio Set 09, 2010 11:37 am

oooooook Wink

_________________
www.uriel1988.altervista.org


Uriel_Science
Programmatore
Programmatore
 
Messaggi: 285
Registrato: 05/01/09 11:56
    Invia messaggio privato Profilo  

    Rispondi citando

GenKs » Gio Set 09, 2010 12:12 pm

Ho provato su ArchLinux e viene eseguito normalmente. Ora ho provato con CodeBlocks su win7 starter e me lo compila senza darmi errori, ma l'output non esce. Ho provato a cambiare 0x00 in 0x01 per rendere true la condizione e funziona. Non ho avuto modo di controllare cosa non andasse tra i due sistemi.
Ciò che non capisco è la condizione nel for(i["**[+i].i({2+5}/2);"]) e i+++"WolfOtakar Forum!\n". Me lo potresti spiegare gentilmente?

GenKs
User Newbie
User Newbie
 
Messaggi: 13
Registrato: 08/09/10 21:42
    Invia messaggio privato Profilo  

    Rispondi citando

Uriel_Science » Gio Set 09, 2010 1:29 pm

GenKs ha scritto:Ho provato su ArchLinux e viene eseguito normalmente. Ora ho provato con CodeBlocks su win7 starter e me lo compila senza darmi errori, ma l'output non esce. Ho provato a cambiare 0x00 in 0x01 per rendere true la condizione e funziona. Non ho avuto modo di controllare cosa non andasse tra i due sistemi.
Ciò che non capisco è la condizione nel for(i["**[+i].i({2+5}/2);"]) e i+++"WolfOtakar Forum!\n". Me lo potresti spiegare gentilmente?


Ehi genks.... Prova a contare il numero dei caratteri che si trova all'interno delle parentesi graffe XD....

**[+i].i({2+5}/2); ha la stessa lunghezza di WolfOtakar Forum!\n e l'incremento di i+++ viene fatto per dare la condizione di incremento al for XD

_________________
www.uriel1988.altervista.org


Uriel_Science
Programmatore
Programmatore
 
Messaggi: 285
Registrato: 05/01/09 11:56
    Invia messaggio privato Profilo  

    Rispondi citando

GenKs » Gio Set 09, 2010 2:07 pm

Uriel_Science ha scritto:
GenKs ha scritto:Ho provato su ArchLinux e viene eseguito normalmente. Ora ho provato con CodeBlocks su win7 starter e me lo compila senza darmi errori, ma l'output non esce. Ho provato a cambiare 0x00 in 0x01 per rendere true la condizione e funziona. Non ho avuto modo di controllare cosa non andasse tra i due sistemi.
Ciò che non capisco è la condizione nel for(i["**[+i].i({2+5}/2);"]) e i+++"WolfOtakar Forum!\n". Me lo potresti spiegare gentilmente?


Ehi genks.... Prova a contare il numero dei caratteri che si trova all'interno delle parentesi graffe XD....

**[+i].i({2+5}/2); ha la stessa lunghezza di WolfOtakar Forum!\n e l'incremento di i+++ viene fatto per dare la condizione di incremento al for XD


Mmm... diciamo che sto iniziando a capire. Ma i[NUMERICKEY] non dovrebbe essere un array in C? I'm confused! Confused

GenKs
User Newbie
User Newbie
 
Messaggi: 13
Registrato: 08/09/10 21:42
    Invia messaggio privato Profilo  

    Rispondi citando

Uriel_Science » Gio Set 09, 2010 2:23 pm

GenKs ha scritto:
Uriel_Science ha scritto:
GenKs ha scritto:Ho provato su ArchLinux e viene eseguito normalmente. Ora ho provato con CodeBlocks su win7 starter e me lo compila senza darmi errori, ma l'output non esce. Ho provato a cambiare 0x00 in 0x01 per rendere true la condizione e funziona. Non ho avuto modo di controllare cosa non andasse tra i due sistemi.
Ciò che non capisco è la condizione nel for(i["**[+i].i({2+5}/2);"]) e i+++"WolfOtakar Forum!\n". Me lo potresti spiegare gentilmente?


Ehi genks.... Prova a contare il numero dei caratteri che si trova all'interno delle parentesi graffe XD....

**[+i].i({2+5}/2); ha la stessa lunghezza di WolfOtakar Forum!\n e l'incremento di i+++ viene fatto per dare la condizione di incremento al for XD


Mmm... diciamo che sto iniziando a capire. Ma i[NUMERICKEY] non dovrebbe essere un array in C? I'm confused! Confused


guarda questo codice che ho scritto e capirai XD....
Codice: < >
#include <stdio.h>
#include <string.h>

#define stringa "01234567"
#define lunghezza() (strlen(stringa))

int main(void) {
   int i[lunghezza()];
   int y[7];
   printf("%d\n",sizeof(i));
     return 0;
}

_________________
www.uriel1988.altervista.org


Uriel_Science
Programmatore
Programmatore
 
Messaggi: 285
Registrato: 05/01/09 11:56
    Invia messaggio privato Profilo  

    Rispondi citando

GenKs » Gio Set 09, 2010 2:38 pm

Con tutta sincerità non ho capito ancora xD... tu nell'esempio hai allocato due integer uno con la dimensione ritornata dalla macro lunghezza e quindi 8 elementi che equivalgono a 8*4=32bytes e un'altro di 7 elementi(28bytes)... cosa c'è da capire? Very Happy
Ho provato ad allocare nel modo che hai fatto tu nell'esempio un integer, cioè:
int i;
i["BLABLABLA"];

ho effettuato un sizeof e mi risulta 4 byte... boh non ti riesco a seguire.

GenKs
User Newbie
User Newbie
 
Messaggi: 13
Registrato: 08/09/10 21:42
    Invia messaggio privato Profilo  

    Rispondi citando

Uriel_Science » Gio Set 09, 2010 2:48 pm

GenKs ha scritto:Con tutta sincerità non ho capito ancora xD... tu nell'esempio hai allocato due integer uno con la dimensione ritornata dalla macro lunghezza e quindi 8 elementi che equivalgono a 8*4=32bytes e un'altro di 7 elementi(28bytes)... cosa c'è da capire? Very Happy
Ho provato ad allocare nel modo che hai fatto tu nell'esempio un integer, cioè:
int i;
i["BLABLABLA"];

ho effettuato un sizeof e mi risulta 4 byte... boh non ti riesco a seguire.


quando effettui il ciclo for, il valore che va ad analizzare è lo '\0' di fine stringa che viene rilevato tra le parentesi quadre... l'incremento della i serve proprio per scandire il "vettore" di stringhe XD

_________________
www.uriel1988.altervista.org


Uriel_Science
Programmatore
Programmatore
 
Messaggi: 285
Registrato: 05/01/09 11:56
    Invia messaggio privato Profilo  


Rispondi

Programmazione

Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi