Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
My Directory Recursive Sample Code
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Versions des environnements
Visual FoxPro:
VFP 9
OS:
Windows 2000 SP4
Divers
Thread ID:
01022342
Message ID:
01022409
Vues:
18
OK, I think I've figured out the deal...

Here is a quote from http://www.roguewave.com/support/docs/sourcepro/threadspl/6-1.html (I've bolded the pertinent part that seems to explain why we both recursed a different number of times on our systems)

"Following allocation, the operating system will grow the stack as needed by committing one-page blocks (4K on an x86 machine) out of the reserved stack memory. Once all of the reserved memory has been committed, the system will attempt to continue to grow the stack into the memory adjacent to the memory reserved for the stack.

Once the stack grows to the point where there is no free memory adjacent to the stack (and this may happen as soon as the initial reserve has been committed), the stack cannot grow any farther. At this point, further stack growth will produce exceptions
, error, or other unpredictable behavior. To avoid this situation, you should take care to specify a sufficient amount of reserved memory space for your stacks when you link your program."



>AFAIK, it's some kind of C stack limit.
>
>>I stand corrected. I just put a config.fpw with STACKSIZE=64000 in my startup folder, and while it did greatly increase the number of levels I could traverse, it bombed at 906 for the following...
>>
>>
pnCounter = 0
>>=mytest()
>>
>>FUNCTION MyTest()
>>	pnCounter = pnCounter + 1
>>	?pnCounter
>>	=mytest()
>>ENDFUNC
>>
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform