皆さん!私は初心者のプログラマーであり、ポインタに関する助けが必要です。これは私がやろうとしていることです:私は関数(呼び出し元)へのポインタ引数arg1とarg2を2つ持っています。今私は、funcが呼び出された場所からの呼び出し元に変更が反映されるように、他の関数、たとえばfunc内でこれらのポインタを操作したいと思います。しかし、今私が関数内で行う変更は、呼び出し関数で取り消されます。ここにソースコードがあります:Cでのポインタ操作
func(node* arg1, node* argv2)
{
node* point3 = (struct node*) malloc(struct node);
arg2 = arg1;
arg 1 = point3;
}
caller(node* argv1, node* argv2)
{
func(arg1, arg2);
}
ここで、私はこれは参照手法によるパスを使用して行うことができることを知っています。しかし、そのfuncはfunc(node** arg, node** arg2)
になり、私はダブルポインタにしたくないです。私は、プログラム内のすべての関数の関数が変更または変更されたときに配列がどのように変化するかについて、より多くのことを考えていました。私を助けてください !
ちょうど参考にしてください:厳密なCでは、本当に 'malloc'の結果をキャストしてはいけません。また、型の代わりに 'sizeof(struct node)'を渡すべきです。私はこれが正直にコンパイルされても驚いています。 –
あなたは正しいです。元のコードではsizeofを使用しました。ここにそれを書くのを忘れてしまった。 – Fahad