Как установить поля указателя в структуре в C? - PullRequest
0 голосов
/ 09 декабря 2018

Я действительно запутался со структурами в C. Я пытаюсь создать массив слов, которые я храню в указателе.Затем я устанавливаю поле args строки для указателя.У меня есть следующий код:

typedef struct line{
    char *args[MAX_INPUT];
    struct line *next;
} line;


void read_line(){
    line l1;
    char *pointer = (char *)malloc(1024);
    l1.args = pointer;
}

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

Если вы хотите разбить строку на слова, вам нужен цикл:

void read_line(){
    line l1;
    // Some kind of a loop: while or for - with a loop variable i
    // For each fragment:
    {        
        char *pointer = malloc(1024);            
        l1.args[i] = pointer;
        // Here, copy the next fragment into l1.args[i]
        ...
    }
}
0 голосов
/ 09 декабря 2018

Декларация, которую вы использовали char *args[MAX_INPUT]; - это не то, что вам нужно.Если вы хотите объявить указатель, вы должны сделать это следующим образом:

char *args;

И затем, если вы хотите использовать этот указатель как массив с размером MAX_INPUT, вы можете сделать это следующим образом;

args = (char *)malloc(sizeof(char)*MAX_INPUT);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...