Assumption/Guessに基づいて、あなたの質問に使用できるコードはありません。例えば
、あなたがstruct node temp, temp2
を使用している場合、あなたは、このよう
struct node {
int value;
struct node *link;
};
をリンクリストを作成している場合、それは内のすべてのメンバのメモリサイズに等しいメモリサイズを持つ2つの構造体変数temp
とtemp2
を作成しますあなたがstruct node *temp, *temp2
を使用している場合int
+ struct node *
ある構造が、それはstruct node
変数を指すことができる2つのポインタを作成します。ポインタがメモリ位置を指し示すだけで、メモリが消費されることはありません。あなたは
、などの
struct node start;
start.value = 10;
start.link = 2000; //hypothetically for example, address should be in hex
struct node temp = start;
temp.value = 20; // Will change only value to 20 for temp variable only
を行っている場合
は、それではstart
のすべてのメンバーの値がtemp
部材の内部にコピーされます。 start
とtemp
のメモリを分けてください。
そして、あなたは次のように実行している場合、
struct node start;
start.value = 10;
start.link = 2000;
struct node *temp = &start;
temp->value = 20; //Will change value to 20 for both temp and start. As temp is pointer not a separate variable.
が、その後
temp
が
start
位置へのポインタ変数のポイントです。
どのように使用されるかによって異なります。本当にノードをコピーする必要がある場合は、正しいと思うので、ポインタではなくノードが必要になります。しかし、ノードへの一時的なポインタが必要になる可能性が高くなります。その場合、宣言はまさに必要なものです。しかし、コードを見ることなく、私たちは推測することができます。 –
*ヘルプセンター*の*要求方法*セクションに必要な、*あなたの質問に文脈を与えることは非常に困難です*関連性のある検証された*コードが欠落しています。 – Wtower