Возникли проблемы с execvp

Вы также можете попробовать использовать новый модуль регулярного выражения Python , который поддерживает совпадающие совпадения.

import regex as re

def count_overlapping(text, search_for):
    return len(re.findall(search_for, text, overlapped=True))

count_overlapping('1011101111','11')  # 5

0
задан Thu Yein Tun 5 March 2019 в 06:16
поделиться

1 ответ

Я уверен, что strtok возвращает указатель, который ссылается на тот первый аргумент, который, в вашем случае, является выделением стека. Я верю, что возвращение массива указателей на это выделение стека приведет к неопределенному поведению. Это может или не может быть причиной вашей проблемы. Это трудно понять, не видя больше кода. Чтобы протестировать, попробуйте изменить эту часть своего кода следующим образом:

void parse_cmd(char *retval[], char *cmd){
    char *tmp;
    char *a = strdup(cmd);
    int i = 0;

Прежде чем использовать его в производстве, вам нужно найти какой-то способ, чтобы убедиться, что вы освободили «a», иначе вы получите утечку. , Может быть, вы могли бы просто вернуть его вместо void и освободить его из другого места, или вы могли бы на самом деле strdup () каждый токен и написать функцию, чтобы освободить их всех или все, что работает для вас.

Если есть другие проблемы, они могут быть в другом коде. Я действительно не вижу здесь ничего плохого.

0
ответ дан Bob Shaffer 5 March 2019 в 06:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: