gpt4 book ai didi

c - 使用指向存储在结构 C 中的数组的指针访问数组

转载 作者:太空宇宙 更新时间:2023-11-04 06:24:14 24 4
gpt4 key购买 nike

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

typedef char *element_t;

typedef
struct {
element_t *array; /* start of the array */
int capacity; /* number of elements the array */
int length; /* used portion of array, 0..capacity */
} list;

我正在尝试访问 *array 指向的数组并为其分配一个 char 值并打印它。

我对 C 有点生疏,但这就是我尝试这样做的方式:

list.array[0] = "a";
printf("%s\n", list.array[0]);

这会使我的程序崩溃。任何修复?

编辑:我还应该提到我也做了以下初始化:

element_t* array[LMAX];
list.array= *differentArray;

最佳答案

似乎对我有用:

typedef char *element_t;

typedef
struct {
element_t *array; /* start of the array */
int capacity; /* number of elements the array */
int length; /* used portion of array, 0..capacity */
} list;

int main(int argc, char **argv)
{
element_t array[2] = {"foo", "bar"};
list list;
list.array = array;
list.capacity = sizeof(array)/sizeof(array[0]);
list.length = 1;
printf("%s\n", list.array[0]);
return 0;
}

您很可能忘记分配 list.array 以指向有效数组。

关于c - 使用指向存储在结构 C 中的数组的指针访问数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29253497/

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