What you're missing is that the assumption you've made about not being able to use arrays or functions is wrong, or rather the understanding of why you "can't" use them is wrong.
As a first step you probably want to use a class to run your application in, this allows you to have the sound and sound buffers as member variables and extend the lifetime scope beyond the current method, without using global variables.
Next I'd recommend using something like a
ResourceHolder to manage the loading of your sound buffers. So you have to only load it once and can reuse it, while the resource is being properly managed.
And finally, to handle sounds in a nice way, I can recommend to use a
std::deque<sf::Sound>, which allows you to pop_front() sounds that have finished playing and push_back() new sound instances without disturbing other already playing sounds.
Alternatively you can also use some other container to hold multiple instances of a sound, but you need to understand how they work. A
std::vector for example will be moved in memory if you just keep push_back()-ing new instances, which then can lead to pausing of the current sounds being played.