Every new variable declared is in 0x0 adress (STM Studio)
When a (usually *global*) variable has an address of zero it means that that compiler/linker thinks that variable is not used. Or the optimizer has optimized that variable out (i.e. it exists only in a CPU register, not in RAM).
Since we can't see all of you main loop, if you never access "freq" or "teste" they will be optimized out. And if you never do anything with "i" except increment it, it too will be optimized out.
This is, of course, presuming that you are compiling with any of the optimization levels enabled. If you have optimization set to none (i.e. "-O0" - the letter O, then number zero), then something else may be going on.