私は動的ポインタをよりよく把握したいと思っています。動的ポインタ操作Cプログラミング
int main(){
// allocate pointer
randomStructure *pt = (randomStructure *)malloc(sizeof(randomStructure));
// arbitrary code that manipulates data that *pt points to.
// function call
function(pt);
return 0;
}
void function(randomStructure *pt){
randomStructure *tempPt = (randomStructure *)malloc(sizeof(randomStructure));
// arbitrary code that manipulates data that *tempPt points to.
pt = tempPt;
//free(tempPt); Question2
/* Question 4
while(index){
randomStructure *tempPt = (randomStructure *)malloc(sizeof(randomStructure));
}
*/
}
質問:私は関数に*pt
を渡すと
、それは自動的にメインに
*pt
を更新しないか、私はそれを行うために関数から*pt
を返すために必要なのですか?*tempPt
の機能を無料にすると、無料の*pt
が表示されますか?私は関数内で
*tempPt
をmallocすれば、そのデータが指すデータは、関数が終了すると自動的に解放されますか?この質問は、前の質問から間接的に回答されるかもしれませんが、
*tempPt
を作成し、ループを解除して*pt
の割り当てを解除してプロセスを繰り返すにはどうすればよいですか?
EDIT質問4:私がしようとしているより具体的な例は、おそらく質問を明確にするでしょう。私は基本的なヒューリスティックアルゴリズムを実行しています。ポインタを関数に渡した後、データを操作し、アルゴリズムを実行して* tempPtを指すようにします。 * tempPtのデータが* ptよりも最適化されている場合は、* ptを* tempPtのデータで更新したいと考えています。
「ダイナミックポインタ」とは何ですか? –
ようこそスタックオーバーフロー。弁護士や署名を使わないでください。 SOはディスカッション・リストではなく、プログラミング問題のオンライン・リファレンス・ブックです。簡潔さと明瞭さは非常に重要であり、逆に、毛羽は望ましくない。詳細は「[ask]」をお読みください。 –
Gotcha my bad。それは私の最初の投稿です。すべてのアドバイスは大歓迎です!ダイナミックに割り当てられたメモリを指すポインタをどのように呼び出すのかが完全にはわからないので、単に「ダイナミックポインタ」と呼んでいます。おそらく、私のサンプルコードはそれにもっと光を当てるだろうか? – Snawwz