ダブルポインタ、トリプルポインタ、、、、、もし、このポインタがどこまでも続いていたら...
というわけで、作ってしまいました!
いくらでもポインタのポインタを作れるソフト!
#include
#include
/*izime 出力ファイル ポインタの階層 [初期値] [代入する値] [区切り]*/
int main(int argc,char* argv[]) {
FILE* out;
int i,j;
int max;
int first;
int next;
int kugiri;
if(argc=4?argv[3]:"1");
next=atoi(argc>=5?argv[4]:"2");
kugiri=atoi(argc>=6?argv[5]:"0");
/*おまじない(笑)*/
fprintf(out,"#include \n");
fprintf(out,"\nint main(void) {\n");
/*変数の宣言*/
fprintf(out,"\tint _0;\n");
for(i=1;i0 && (j+1)%kugiri==0)fprintf(out,"\n\t ");
}
fprintf(out,"_%d;\n",i);
}
fprintf(out,"\n");
/*ポインタの代入*/
for(i=1;i0 && (i+1)%kugiri==0)fprintf(out,"\n\t");
}
fprintf(out,"_%d=%d;\n",max,next);
fprintf(out,"\tprintf("%%d\\n",_0);\n");
/*終了*/
fprintf(out,"\n\treturn 0;\n}\n");
fclose(out);
return 0;
}
#include
int main(void) {
int _0;
int *_1;
int **_2;
int ***_3;
int ****_4;
int *****_5;
int ******_6;
int *******_7;
int ********_8;
int *********_9;
int **********_10;
_1=&_0;
_2=&_1;
_3=&_2;
_4=&_3;
_5=&_4;
_6=&_5;
_7=&_6;
_8=&_7;
_9=&_8;
_10=&_9;
_0=222;
printf("%d\n",_0);
**********_10=333;
printf("%d\n",_0);
return 0;
}
これで使っていない「区切り」という機能は、*の山の一定数ごとに改行を入れる機能です。
試しに「izime test4.c 10000 222 333 1000」としたところ、10秒ほどかかって48.2MBのコードが出力されました。
コンパイルしてみる。
「gcc -o test4.exe test4.c」
...
ごめん!やりすぎた!!!gcc さんが書きました:test4.c: In function `main':
test4.c:14958: parser stack overflow before "_4990"
ということは
「izime test5.c 4889 222 333 1000」
「gcc -o test5.exe test5.c」
おお!コンパイル通った!ちゃんと動く!
このコードがほしい人は、PMを送ってください。このプログラムで自分で作成してください。