#include \u0026lt;stdio.h\u0026gt;
#include \u0026lt;stdlib.h\u0026gt;
char *b;
void a(int n){
if(n\u0026lt;=0){ printf(\u0026quot;%s\
\u0026quot;, b); return; }
b[n-1] = '0'; a(n-1);
b[n-1] = '1'; a(n-1);
}
int main(){
int n;
printf(\u0026quot;n\u0026gt;\u0026quot;); scanf(\u0026quot;%d\u0026quot;, \u0026amp;n);
b = malloc(n+1);
b[n] = 0;
a(n);
}
nが完全に無制限は面倒なのでintの範囲\u0026amp;メモリの使える限りで。