我有一个代表内存的列表 mem 。 “-” 字符表示其中为空白。
memAlloc 函数需要查找可用空间(考虑到碎片存储)并用填充数据 randSize 中的数据值。
def memAlloc(mem, data):
randSize = randint(1, len(mem)//4)
writeStart = 0
writeSize = 0
found = False
for i in range(len(mem)):
if(mem[i] == "-"):
writeStart = i
writeSize = 0
for j in range(i, len(mem)):
if(mem[j] == "-"):
writeSize += 1
if(writeSize == randSize):
found = True
break
else:
break
if(found):
break
if(found):
i = writeStart
for j in range(writeSize):
mem[i] = data
i += 1
else:
print("Error: Not Enough Memory Space!")
return mem
答案 0 :(得分:1)
使用较少明确的索引整理,此代码将更加清晰。您只是在寻找mem
的单个片段,该片段等于诸如"-----"
这样的字符串,
长度由randSize
确定。
(我假设mem
是一个列表,因此可以通过分配给切片来对其进行更改。如果mem
是一个字符串,则需要进行一些更改。如果{{ 1}}完全是另外一回事,可能需要其他一些更改。)
mem