重複の可能性:
C ++で配列を使用するにはどうすればよいですか?
私は次のCコードを持っています:
int main () {
char *pathvc[MAX_PATHS];
parsePath(pathvc);
struct command_t command;
command.name = lookup(command.argv, pathvc); //command.argv is: char *argv[MAX_ARGS];
}
char* lookupPath(char **argv, char **dir) {
//Some implementation
}
これは、メイン関数で取得しているデバッグ情報です。
名前:pathvc詳細:{0x804c208 "/ usr / lib / lightdm / lightdm"、0x804c221 "/ usr / local / sbin"、0x804c231 "/ usr / local / bin"、0x804c240 "/ usr / sbin"、0x804c24a "/ usr / bin "、0x804c253" / sbin "、0x804c259" / bin "、0x804c25e" / usr / games "、0x0}デフォルト:0xbffff0a8 10進数:3221221544 16進数:0xbffff0a8バイナリ:10111111111111111111000010101000 8進数:027777770250
名前:pathvc [0]詳細:0x804c208 "/ usr / lib / lightdm / lightdm"
名前:pathvc [1]詳細:0x804c221 "/ usr / local / sbin"
名前:pathvc [2]詳細:0x804c231 "/ usr / local / bin"
名前:pathvc [3]詳細:0x804c240 "/ usr / sbin"
名前:pathvc [4]詳細:0x804c24a "/ usr / bin"
名前:pathvc [5]詳細:0x804c253 "/ sbin"
名前:pathvc [6]詳細:0x804c259 "/ bin"
名前:pathvc [7]詳細:0x804c25e "/ usr / games"
ただし、ルックアップ関数でpathvcを渡すと、次のようになります。
名前:dir詳細:0xbffff0a8デフォルト:0xbffff0a8 10進数:3221221544 16進数:0xbffff0a8バイナリ:10111111111111111111000010101000 8進数:027777770250
名前:* dir詳細:0x804c208 "/ usr / lib / lightdm / lightdm"
名前:** dir詳細:47'/'
ダブルポインターとして受け入れるルックアップ関数にポインターの配列を渡しているのに、パスの完全なリストではなく、最初のパスのみを指しているのはなぜですか。
私はCのポインターに慣れていないので、非常にばかげた質問をしている/質問している場合はご容赦ください。