0

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

我只能想到类似的东西,但我没有得到完整的可编译解决方案。

struct foo {
    unsigned char *array;
};

进而:

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

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

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

1 回答 1

3

你的代码几乎没问题:

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

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

您还需要为结构分配内存 - 当前foo指向一些随机内存位置,访问很可能会使您的程序崩溃:

struct foo *foo = malloc(sizeof(*foo));
于 2012-06-09T00:00:09.333 回答