私はプログラミングCの初心者であり、構造の動的配列を作成するときに値を取得して設定する際に助けが必要です。動的に割り当てられた配列の配列の値を取得して設定する
Iは、例えば、この構造体を有する:
struct opt{
int size;
Element* elements;
CopyFunction copyElement;
};
typedef struct opt * Popt;
私は動的割り当てを使用して、タイプstruct opt
の5つの構造体のためのメモリを割り当てmalloc
を使用します。私はこの行を使用しました:
Popt opt_t = (Popt)malloc(5*sizeof(struct opt));
これらの構造体の値を取得して設定します。
opt_t [2] .size、opt_t [3] .elementsを、opt_t [3]
を.copyElement:私はOOPのようなことを考えるならば、私はこのような値を取得したいと思いどのように私はCでそれを行うことができますか?私は次の行とその悪い見た目を使用しようとしました(私の記憶はゴミでいっぱいでした)。
*((&(opt_t->size)+(2*sizeof(struct opt))))
*((&(opt_t->elements)+(3*sizeof(struct opt))))
*((&(opt_t->copyElement)+(3*sizeof(struct opt))))
'_t'という接尾辞は、型名(C標準の' size_t'、 'uint8_t'、' wchar_t'などと思っています。変数に接尾辞を使用しない方がいいでしょう。コードを読んでいる人を混乱させる可能性があります。実際に間違っているわけではありません。多くのCコードを見た人に間違ったメッセージを送ります。 –
も参照してください[typedefポインタには良いアイデアです](http://stackoverflow.com/questions/750178/is-it-a-good-ide-to-typedef-pointers) - 簡潔な答えは "いいえ"です。 。 –