I think, the problem here is caused by the presence of the %-ed elements like %3A and %2B in the array, and you're passing that to printf() as the only argument, without a format specifier string in place.
When you pass a string directly to printf() (as the first argument to printf()), it interprets those as format specifiers, and expect argument for that. But using
- invalid format specifier
%2B and
- supplying less arguments (in this case, should be ideally two)
are both undefined behaviour.
You can try changing you print statement to
printf("%s\n", bla);
to make the printf() understand that those %s does not carry any special meaning, they are simply to be printed.