Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要将指向 char 数组的指针存储在结构中,然后修改/访问数组内容。我怎样才能做到这一点?
我只能想到类似的东西,但我没有得到完整的可编译解决方案。
struct foo { unsigned char *array; };
进而:
unsigned char array[512]; struct foo *foo; foo->array = array;
在另一个接收指向结构的指针的函数中:
*(foo->array[0]) = 'K';
你的代码几乎没问题:
foo->array[0] = 'K';
您的代码的问题*(foo->array[0])是您尝试取消引用char甚至不是指针的 a 。
*(foo->array[0])
char
您还需要为结构分配内存 - 当前foo指向一些随机内存位置,访问很可能会使您的程序崩溃:
foo
struct foo *foo = malloc(sizeof(*foo));