Вот уже пару часов я бьюсь головой об стену.
У меня есть структура, определенная следующим образом:
typedef struct historyNode {
int pos;
char cmd[MAXLINE];
char* args[(MAXLINE / 2) + 1];
struct historyNode* next;
} historyNode_t;
Я пытаюсь скопироватьпереданный массив строк в поле args
в приведенной выше структуре.Это происходит в следующем методе:
void addToHistory(history_t* history, char* args[(MAXLINE / 2) + 1]) {
historyNode_t* node = malloc(sizeof(historyNode_t));
...
int index = 0;
while (args[index] != NULL) {
node->args[index] = args[index];
...
Когда я пытаюсь получить доступ к значению args
этого узла в более позднее время вне метода, он выплевывает значение, равное тому, что находится в переданном входе.args
массив в этот момент;то есть значения на самом деле не копируются, а скорее адреса.
Я чувствую, что это просто, но меня это расстраивает.Любые советы о том, как это можно исправить, очень ценятся.