@YamahaSV Вы можете объявлять и инициализировать переменные вне функций, но у вас не может быть простых назначений. Так что ты не можешь писать

struct variables {

    unsigned int counter;
    char *bra;
    unsigned int maxb;
    int *findtheking;
    unsigned int numoright;
};

int getlen = 0; // I give getlen a value in another function
int solo = 0;
mat.bra = (char*)malloc(sizeof(char)*getlen);
mat.bra = '\0';

struct variables pal = { 0, '\0', 0, 0, 0 };
struct variables mat = { 0, '\0', 0 , 0, 0 };
struct variables all = { 0, '\0', 0,  0, 0 };
struct variables alle = { 0, '\0', 0 , 0, 0};

l Studio говорит мне, что

mat.bra = (char*)malloc(sizeof(char)*getlen);
*mat.bra = '\0';

обе потребности ';' и я не понимаю почему. Пожалуйста помоги?

и будет ли для меня возможность malloc для mat.bra, если я

int matches(char* str, int len) {

getlen = strlen(str);


if (mat.counter >= strlen(str)) {
    if (mat.bra[strlen(str)-1] == '(') {
        mat.counter = 0;
        mat.bra[0] = '\0';
        return 0;
    }
    else if (mat.bra[strlen(str)-1]  == '0') {
        mat.counter = 0;
        mat.bra[0] = '\0';
        return 1;
    }


}
else {
    if (str[mat.counter] == '(') {
        mat.bra[len-1] = str[mat.counter];
        mat.counter++;
        matches(str, len - 1);

    }
    else if (str[mat.counter] == ')') {
        if (mat.bra[len] == '(') {
            mat.counter++;
            mat.bra[len] = '0';
            matches(str, len + 1);
        }
        else {
            mat.counter = 0;
            mat.bra[0] = '\0';
            return 0;
        }
    }
    else {
        mat.counter++;
        matches(str, len);
    }
}

}

есть эта функция в первой части кода?

Я запускаю матчи в main.c, а эти коды в func.c

Я пытаюсь запустить эту функцию match в main.c несколько раз, и мне нужно, чтобы mat.bra имел разный размер strlen (str) при каждом запуске. Могу ли я даже так malloc таким образом?

Извините, если мой вопрос неопределенный, я новичок в кодировании. Если что-то нуждается в улучшении, скажите мне, и я постараюсь уточнить больше!

Ответы на вопрос(0)

Ваш ответ на вопрос