malloc
のみ1つのsize_t
引数を取ります。私が発生する可能性のある他のエラーを知ってみましょう
*namesFiles = (char**)malloc(10 * sizeof(char*));
:これまで
*namesFiles = (char**)malloc(*namesFiles, 10 * sizeof(char*));
:これを変更し 。
また、ポインタを呼び出し元に渡す必要がある場合、ポインタのアドレスを引数として渡す代わりにポインタを返すのはなぜですか?
ようなので: char** namesFiles = CheckFilesInFolder("Debug");
私はこれが最善の方法であると信じて:ちょうどこれを行う、呼び出すに
char** namesFiles = (char**)malloc(10 * sizeof(char*));
//(...)
return namesFiles;
: char** CheckFilesInFolder(char* pathOfFolder);
と機能には次のように行います。
EDIT 1.0 は、「アルク」からのコメントに返信するには、ここに文字を返すために、代わりに私の(単純な)提案の引数を通じてのchar *の配列へのポインタを使用してこの問題を解決する方法です**:
コールこのような関数:関数内
char** namesFiles;
CheckFilesInFolder("Debug", &namesFiles);
:
*namesFiles = (char**)malloc(10 * sizeof(char*));
int i;
for (i = 0; i < 10; i++)
(*namesFiles)[i] = (char*)malloc(MAX_FILE_NAME);
関数宣言:これはあなたがのpthreadのルーチンとして、この関数をコールする場合、あなたが本当に例えば、この使用して引数を行う必要がある
void CheckFilesInFolder(char* pathOfFolder, char*** namesFiles);
使用。
['malloc()'と 'C 'のファミリの戻り値をキャストしない理由についてのこのディスカッションを参照してください。](http://stackoverflow.com/q/605845/2173917)。 –
'(* namesFiles)[i]'が必要です。 –
どうしたらいいですか? –