Short answer: Street cats have a stable population because they grow up quickly and can reproduce early in life (within their first year). That does not mean that street cats are healthy or live long lives - in fact, multiple studies have found that 75% of kittens born outdoors don't survive past 6 months.
Street cats usually find enough food not to starve, but usually the food they find is not healthy for them. In a natural environment they would hunt rodents, birds and other small animals, which provide them with all the nutrients they need to live a healthy life. But in an environment shaped by humans, cats prefer pilfering garbage containers because hunting rats poses the risk of injury to them.
What they mostly find in the garbage is starch-based food waste like stale bread, old rice, potatoes or pasta and probably also some meat-based food waste and fat or oil. This diet does provide enough calories to survive, but it lacks vital nutrients that are only found in the raw inner organs of fresh animals.
The result of such a diet is a high risk of malnutrition or illness. Young cats have a risk of not reaching their natural body height because of malnutrition. Periods of starvation followed by an overabundance of food greatly increases the risk of feline pancreatitis, a very painful and often deadly inflammation of the pancreas that is not visible but can kill many feral cats. When the cats get older they might not be able to defend their territory or food source due to joint pain, which is also a common result of malnutrition. And urinary tract infections or stones (commonly caused by consuming high grain content) can weaken street cats as well.
All that is to say: street cats have a shorter life than our pet cats. They have many risks to their lives and people in general don't care if they die young. What keeps populations stable is the fact that a cat can have kittens less than 1 year after her birth and many street cats survive at least 2 - 4 years (if they survive until adulthood).