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])a を逆参照しようとすることです。char

また、構造体にメモリを割り当てる必要があります。現在foo、アクセスによってプログラムがクラッシュする可能性が最も高いランダムなメモリ位置を指しています。

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