Why doesn't it work?

I tried using char type array instead of string , but still doesn’t work! What is the problem?

#include<bits/stdc++.h>
using namespace std;

void call(string inp , char *out , int i , int j , int n){
if(i == n){
out[j]=’\0’;
cout<<out<<endl;
return;
}
out[j]=inp[i];
call(inp , out , i+1 , j+1 , n);
call(inp , out , i+1 , j , n);
}

int main() {
string s;
cin>>s;
char out[10000000];
call(s,out,0,0 , s.length());
cout<<(pow(2,s.length()))<<endl;
return 0;
}

hello @chetan_aggarwalbX1

call this before this statement .

also ur out array size is large so declare it of appropriate size