neku
Codeur roumain
Voici un fonction écrite en C++ permettant d'avoir un affichage des variables tableau un peu comme en php, ce n'est pas exactement la même chose, mais cela s'en approche.
voici des exemples de sortie
cela fonctionne aussi avec un char** / char*[] (comme argv[] (2eme arguments de la fonction main))
Code:
template<typename _T> void func_print_r(const char* varname, _T result) {
if (*result) {
int i = 0;
std::cout << varname << " (" << (void*)*result << ") = {" << std::endl;
while ((*result)[i] && !IsBadReadPtr((*result)[i], sizeof(_T))) {
std::cout << "\t[" << i << "] " << "(" << (void*)&(*result)[i] << ")" << " => " << (*result)[i] << std::endl;
i++;
}
std::cout << "}[" << i << "];" << std::endl;
}
}
#define print_r(ptr) func_print_r(#ptr + 1, ptr)
Code:
int ent[10] = {18, 35, 345, 2, 235, 634, 222, 2, 9, 19};
print_r(&ent);
char* toto = "coucou";
print_r(&toto);
Code:
ent (0xbffff7ac) = {
[0] (0xbffff7ac) => 18
[1] (0xbffff7b0) => 35
[2] (0xbffff7b4) => 345
[3] (0xbffff7b8) => 2
[4] (0xbffff7bc) => 235
[5] (0xbffff7c0) => 634
[6] (0xbffff7c4) => 222
[7] (0xbffff7c8) => 2
[8] (0xbffff7cc) => 9
[9] (0xbffff7d0) => 19
}[10];
toto (0x2da3) = {
[0] (0x2da3) => c
[1] (0x2da4) => o
[2] (0x2da5) => u
[3] (0x2da6) => c
[4] (0x2da7) => o
[5] (0x2da8) => u
}[6];
Code:
Nekuz0r:Desktop neku$ ./test coucou a tous
print_r(&argv);
Code:
argv (0xbffff7e4) = {
[0] (0xbffff7e4) => ./test
[1] (0xbffff7e8) => coucou
[2] (0xbffff7ec) => a
[3] (0xbffff7f0) => tous
}[4];