I have written a code to find the max free id in Python. However, when I try to print the max value, it returns Memory Error. Additionally, I cannot stay at the interpreter with python -i test.py
as it will return a lot of Memory Error warnings and exit.
Here is the code I have written: (There are many Error Handlings as I want to skip the Memory Error)
wtf = lambda x:lambda t: x+t # To create the free local functions
a = [] # To store the functions
try:
for _ in range(int("0xFFFFFFFF", 16)): # Maximum of id 0xFFFFFFFF
try:
a.append(wtf(_))
except:
break
except:
pass
# Used to split the array to avoid the Memory Error
length = len(a)
n = 10000
every = int(length/n)
diff = length - n*every
ids = []
try:
for i in range(n):
try:
abc = a[i*every:(i+1)*every-1]
except:
abc = a[i*every:(i+1)*every-1+diff]
try:
for _ in abc:
try:
ids.append(id(_))
except:
pass
except:
pass
except:
pass
# Split the array to get the maxes
maxs = []
try:
for i in range(n):
try:
abc = ids[i*every:(i+1)*every-1]
except:
abc = ids[i*every:(i+1)*every-1+diff]
maxs.append(max(abc))
except:
pass
print(hex(max(maxs))) # Should plus 3 as there are 3 variables totally defined before wtf functions
I have tried to split the arrays, but it didn't work. How could I do to get the result (i.e. max(ids)
)? It returns Memory Error now.
User contributions licensed under CC BY-SA 3.0