Homelessness is mainly caused by the physical reality of there being too few homes for the number of people.
The good way to change that is to add more housing (let's ignore the option of removing people).
Giving homeless people money doesn't end the physical reality at all. It can make some homeless people able to afford housing, but an equal number of housed people will replace them as homeless.
I might be misunderstanding what you are saying, but if there are less than 600k homeless people in America and over 15 million vacant homes, it doesn't seem to be "caused by the physical reality of there being too few homes for the number of people".
The good way to change that is to add more housing (let's ignore the option of removing people).
Giving homeless people money doesn't end the physical reality at all. It can make some homeless people able to afford housing, but an equal number of housed people will replace them as homeless.