誰かがC関数のグローバル変数(私の例では配列 'used')をユーザー関数内でどのように伝えることができますか(私の例では 'checkData'ですか?それは同様のコードが動作するC++(私は使用「=新しいブール[サイズ]を使用;」「ブール[サイズ]使用;」の代わりに)あなたは使用が配列であることだと思いますなぜC - ユーザー関数内のグローバル変数にアクセスできない
#include <stdio.h>
#define true 1
#define false 0
typedef int bool;
bool *used;
int i;
void checkData(int i);
int main()
{
int size = 10;
bool used[size];
for (i = 0; i < size; i++)
used[i] = false;
for (i = 0; i < size; i++)
checkData(i);
return 0;
}
void checkData(int i) {
printf("%d - %d\n", i, used[i]);
}
'checkData'関数はすでにグローバル変数' used'にアクセスしています。 'main'関数が同じグローバル変数にアクセスしていないため、期待した値が得られません。 'main'は* local *変数' bool used [size];を宣言し、代わりにそれを設定します。 – kaylum
'malloc' ... – user3386109
または' void checkData(int i、int used []、size_t len) 'を使って' main() 'にローカルを保持し、そのサイズと関数を渡します。 – WhozCraig