2017-01-13 16 views
1

これに対する答えは見つかりませんでした。私はポインタポインタを関数に渡す

char **buffer; 

上のポインタを持っていると私は機能

void some_func(char **buffer) {} 

にそれを渡したいときに、この関数の呼び出しバッファが、私は、この関数を呼び出す必要がありますどのようにこの関数からのデータが含まれています後にしてください?

+2

関数によっては、新しいポインタを返すことがより簡単であるかもしれません。つまり、関数 'char ** func(char **) 'を作成することです。 – nneonneo

+3

'buffer'の内容だけを変更し、ポインタ自体は変更したくない場合は、' some_func(buffer); 'を呼び出すことができます。 –

+0

あなたがしたいことははっきりしていません。最初に関数を呼び出すと、 'buffer'には何も入っていませんか? –

答えて

3

それは正しいですが、事実は、あなたがポインタにこのポインタを渡しているということです

// initialize it 
char** buffer; 

void some_func(char ***buffer) {} // by reference 

および関数呼び出しの:

値によってそのようポインタを渡します
some_funct(&buffer); 
2
some_func(&buffer); 

これは必要な呼び出しです。

AND関数は、バッファを操作するには...

void some_func(char ***buffer) {} 

する必要があります...あなたの例では

*buffer = something; 
関連する問題