cython

Форк
0
29 строк · 682.0 Байт
1
from libc.stdlib cimport malloc
2
from libc.string cimport strcpy, strlen
3

4
cdef char* hello_world = 'hello world'
5
cdef size_t n = strlen(hello_world)
6

7

8
cdef char* c_call_returning_a_c_string():
9
    cdef char* c_string = <char *> malloc(
10
        (n + 1) * sizeof(char))
11

12
    if not c_string:
13
        return NULL  # malloc failed
14

15
    strcpy(c_string, hello_world)
16
    return c_string
17

18

19
cdef int get_a_c_string(char** c_string_ptr,
20
                         Py_ssize_t *length):
21
    c_string_ptr[0] = <char *> malloc(
22
        (n + 1) * sizeof(char))
23

24
    if not c_string_ptr[0]:
25
        return -1  # malloc failed
26

27
    strcpy(c_string_ptr[0], hello_world)
28
    length[0] = n
29
    return 0
30

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.