diff options
Diffstat (limited to 'docs/examples/tutorial/string/slicing_c_string.pyx')
-rw-r--r-- | docs/examples/tutorial/string/slicing_c_string.pyx | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/docs/examples/tutorial/string/slicing_c_string.pyx b/docs/examples/tutorial/string/slicing_c_string.pyx new file mode 100644 index 000000000..efe0cc0df --- /dev/null +++ b/docs/examples/tutorial/string/slicing_c_string.pyx @@ -0,0 +1,16 @@ +from libc.stdlib cimport free
+from c_func cimport get_a_c_string
+
+
+def main():
+ cdef char* c_string = NULL
+ cdef Py_ssize_t length = 0
+
+ # get pointer and length from a C function
+ get_a_c_string(&c_string, &length)
+
+ py_bytes_string = c_string[:length]
+
+ free(c_string)
+ print(py_bytes_string) # py_bytes_string is still available
+
|