将数组指针传递给struct并访问该数组

时间:2012-06-08 23:58:47

标签: c arrays pointers struct

我需要在结构中存储指向char数组的指针,然后修改/访问数组内容。我怎么能这样做?

我只能想到与此相似的东西,但我没有达到完全可编译的解决方案。

struct foo {
    unsigned char *array;
};

然后:

unsigned char array[512];
struct foo *foo;
foo->array = array;

在接收指向struct的指针的另一个函数中:

*(foo->array[0]) = 'K';

1 个答案:

答案 0 :(得分:3)

您的代码几乎没问题:

foo->array[0] = 'K';

您的代码*(foo->array[0])的问题在于您尝试取消引用甚至不是指针的char

您还需要为结构分配内存 - 当前foo指向某个随机内存位置,其中访问很可能会导致程序崩溃:

struct foo *foo = malloc(sizeof(*foo));