Please let me know what I am doing wrong. Here is my code:
Code: Select all
type List
contents as String ptr
items as UInteger
declare function ItemAt(index as UInteger) as String
declare sub Append(item as String)
declare sub Destroy()
declare sub Remove(index as UInteger)
end type
function List.ItemAt(index as UInteger) as String
dim result as String = ""
if index <= items then result = contents[index - 1]
return result
end function
sub List.Append(item as String)
if items > 0 then
items += 1
contents = reallocate(contents, items * SizeOf(String))
clear contents[items - 1], 0, SizeOf(String)
contents[items - 1] = item
else
contents = callocate(SizeOf(String))
contents[0] = item
items = 1
end if
end sub
sub List.Destroy()
deallocate(contents)
contents = 0
items = 0
end sub
sub List.Remove(index as UInteger)
if items > 0 then
items -= 1
for i as Integer = index - 1 to items - 1
contents[i] = contents[i + 1]
next
contents = reallocate(contents, items * SizeOf(String))
end if
end sub
dim a as List
print "press a key to create list"
getkey
for i as Integer = 1 to 100000
a.Append(str(i))
next
print "press a key to destroy list"
getkey
a.Destroy()
print "press a key to create list"
getkey
for i as Integer = 1 to 100000
a.Append(str(i))
next
print "press a key to destroy list"
getkey
a.Destroy()
print "done"
getkey
Any help would be appreciated. Thanks!