In this sentence:
“I have a room for free.”
the word for is a preposition, but free isn't a noun.
So is the sentence grammatical correct?
English Language Learners Stack Exchange is a question and answer site for speakers of other languages learning English. It only takes a minute to sign up.Sign up to join this community
The keys to this question are knowing the way prepositions work to form phrasal units, and how to parse the sentence you are reading.
I’m sure you’ve heard of phrasal verbs, such as check out, cut off, get over, hand in, hold on, look over, and mix up. These multiword expressions often get their own entries in a dictionary; for example, break up is listed in the Oxford Living Dictionary, with seven possible meanings provided.
Many other expressions are separately listed in dictionaries as idioms or phrases, and for free is one of those. The same dictionary you referenced in your question gives for free an entry of its own. A similar phrase would be for good, which also gets its own listing in dictionaries. Much like phrasal verbs, these two- or three-word phrases often employ a pesky preposition, such as for, at, in, or of; consider expressions such at last, in all, under control, over time, and, of course, of course.
Interestingly enough, however, for free gets listed as
not standard, which makes your “Is this grammatically correct?” question is an interesting one. It’s certainly idiomatic, and it’s definitely conversational. We could characterize it as “colloquial," too. I wouldn’t go so far as to deem it “grammatically incorrect,” although labels such as
not standard are often indicators that you might want to use a different expression in a formal document.
I gave you this answer for free; I hope you’ll remember it for good.