我需要在结构中存储指向char数组的指针,然后修改/访问数组内容。我怎么能这样做?
我只能想到与此相似的东西,但我没有达到完全可编译的解决方案。
struct foo {
unsigned char *array;
};
然后:
unsigned char array[512];
struct foo *foo;
foo->array = array;
在接收指向struct的指针的另一个函数中:
*(foo->array[0]) = 'K';
答案 0 :(得分:3)
您的代码几乎没问题:
foo->array[0] = 'K';
您的代码*(foo->array[0])
的问题在于您尝试取消引用甚至不是指针的char
。
您还需要为结构分配内存 - 当前foo
指向某个随机内存位置,其中访问很可能会导致程序崩溃:
struct foo *foo = malloc(sizeof(*foo));