"C++ est un langage évolué ?" "Oui, il n'y a aucun compile time bound-checking"
43 messages
Mise à jour: il y a 4 jours
PatrickDeVerre
il y a 4 jours
CelestinNain
il y a 4 jours
CulExplosax14
il y a 4 jours
CulExplosax14
il y a 4 jours
FRY_1999
il y a 4 jours
JosePetard
il y a 4 jours
isidore_1212
il y a 4 jours
tu fais une assignation qui va se traduire en calcul d'offset par le compilateur et qui va juste faire un sizeof int + 100 depuis ton objet donc forcement ça compilera sans checker si tu es out of bound vu que tu fais une assignation.
Pour le faire plus proprement et avoir un check il fallait utiliser at() le desco
CelestinNain
il y a 4 jours
isidore_1212
il y a 4 jours
tu fais une assignation qui va se traduire en calcul d'offset par le compilateur et qui va juste faire un sizeof int + 100 depuis ton objet donc forcement ça compilera sans checker si tu es out of bound vu que tu fais une assignation.Pour le faire plus proprement et avoir un check il fallait utiliser at() le desco
CulExplosax14
il y a 4 jours
isidore_1212
il y a 4 jours
/tmp $ cat 1.cpp
#include <array>
int main() {
std::array<int, 10> foo;
foo[100] = 42;
return 0;
}
/tmp $ cat 2.cpp
#include <array>
#include <iostream>
#include <stdexcept>
int main() {
std::array<int, 10> foo;
try {
foo.at(100) = 42;
} catch (const std::out_of_range& e) {
std::cerr << " BMG ? " << std::endl;
}
return 0;
}
/tmp $ g++ 1.cpp
/tmp $ ./a.out
/tmp $ g++ 2.cpp
/tmp $ ./a.out
BMG ?
Je ne débat pas avec toi je t'éduque
CelestinNain
il y a 4 jours
isidore_1212
il y a 4 jours
/tmp $ cat 1.cpp #include <array> int main() { std::array<int, 10> foo; foo[100] = 42; return 0; } /tmp $ cat 2.cpp #include <array> #include <iostream> #include <stdexcept> int main() { std::array<int, 10> foo; try { foo.at(100) = 42; } catch (const std::out_of_range& e) { std::cerr << " BMG ? " << std::endl; } return 0; } /tmp $ g++ 1.cpp /tmp $ ./a.out /tmp $ g++ 2.cpp /tmp $ ./a.out BMG ?
Je ne débat pas avec toi je t'éduque
ItsukiNakano
il y a 4 jours
thisisitas
il y a 4 jours
ToyosatomimiDDB
il y a 4 jours
OK mais cache ta virginité par pitié
Ayaaaaa t'avais clairement pas à dire ça.
isidore_1212
il y a 4 jours
L'OP ne fait aucune vérification durant le run, tout se passe durant la compil.
L'op ne sait pas faire la différence entre un assignement à addresse fixe et un out of bound sur un array surtout
CulExplosax14
il y a 4 jours
Elezia_
il y a 4 jours
isidore_1212
il y a 4 jours
tu n'as rien compris le low
déjà débunk merci
Hangout4179
il y a 4 jours
CelestinNain
il y a 4 jours
CulExplosax5
il y a 4 jours
CelestinNain
il y a 4 jours