почему мой указатель не увеличивается до следующего индекса? - PullRequest
0 голосов
/ 24 мая 2019

Итак, если я изменю buf [t_index] на * buf (получил до и после ниже) и делаю buf ++ вместо t_index ++, я получаю ошибку сегментации, что является причиной этого?мое исследование требует ограниченных функциональных линий, и у меня 1 слишком много = [.

ДО:

t_tetrimino     *ft_sort_list(char **buf, int x, int y, int block)
{
    t_tetrimino *curr;
    t_tetrimino *head;
    int         t_index;
    int         index;

    index = 0;
    t_index = 0;
    curr = (t_tetrimino*)malloc(sizeof(t_tetrimino));
    head = curr;
    while (buf[t_index] != NULL)
    {
        if (ft_validator(buf[t_index], 0, 0, 0) == -1)
            return (NULL);
        while (buf[t_index][index])
        {
            if (buf[t_index][index] == '#')
                (curr->x[block] = x) && (curr->y[block] = y) && block++;
            buf[t_index][index] == '\n' && index != 19 ? (y++ && (x = 0)) : x++;
            index++;
        }
        set_tetr_properties(&curr);
        reset_vars(&block, &x, &y, &index);
        t_index++;
    }
    return (head);
}

ЧТО Я ХОЧУ:

t_tetrimino     *ft_sort_list(char **buf, int x, int y, int block)
{
    t_tetrimino *curr;
    t_tetrimino *head;
    int         t_index;
    int         index;

    index = 0;
    t_index = 0;
    curr = (t_tetrimino*)malloc(sizeof(t_tetrimino));
    head = curr;
    while (*buf != NULL)
    {
        if (ft_validator(*buf, 0, 0, 0) == -1)
            return (NULL);
        while (*buf[index])
        {
            if (*buf[index] == '#')
                (curr->x[block] = x) && (curr->y[block] = y) && block++;
            *buf[index] == '\n' && index != 19 ? (y++ && (x = 0)) : x++;
            index++;
        }
        set_tetr_properties(&curr);
        reset_vars(&block, &x, &y, &index);
        buf++;
    }
    return (head);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...