pocketpy/tests/80_c.py
blueloveTH 577f7b4d0e ...
2023-06-11 22:59:46 +08:00

35 lines
754 B
Python

import c
c_int = c.refl("int")
assert c_int.size() == c.sizeof("int")
array = c.malloc(c.sizeof("int") * 10)
array.set_base_offset("int")
assert array.get_base_offset() == c_int.size()
for i in range(10):
array.offset(i).write_int(i)
x = c_int()
x.addr().write_int(0)
for i in range(10):
i = array.offset(i).read_int()
x.addr().write_int(
x.addr().read_int() + i
)
assert x.addr().read_int() == (0+9)*10//2
c.memset(array, 0, c.sizeof("int") * 10)
for i in range(10):
assert array.offset(i).read_char() == 0
array2 = c.malloc(c.sizeof("int") * 10)
array2.set_base_offset("int")
c.memcpy(array2, array, c.sizeof("int") * 10)
for i in range(10):
assert array2.offset(i).read_char() == 0
c.free(array)
c.free(array2)