gpt4 book ai didi

C - 将字符串数组复制到结构中

转载 作者:行者123 更新时间:2023-11-30 16:28:31 27 4
gpt4 key购买 nike

几个小时以来,我一直在用头撞墙。

我有一个定义如下的结构:

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 中的值的值那一刻的阵列;即,实际上并未复制值,而是复制了地址。

我觉得这很简单,但让我感到沮丧。非常感谢任何有关如何解决此问题的提示。

最佳答案

I attempt to access this node's args value at a later time outside of the method

为此,无论您尝试访问 args 值,都应该返回指向 struct HistoryNode 的指针。这是一个示例:

 #include<stdio.h>
#include<stdlib.h>

struct node
{
char *a[2];
};

struct node *fun()
{
char *c[]={"hello","World"};
struct node *ptr= malloc(sizeof(struct node));
ptr->a[0]=c[0];
ptr->a[1]=c[1];
return ptr;
}

int main()
{
struct node *ptr=fun();
printf("%s %s\n",ptr->a[0],ptr->a[1]);
return 0;
}

输出: Hello World

关于C - 将字符串数组复制到结构中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52349764/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com