Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: avertissement pour depassement arithmetrique  (Lu 402 fois)

0 Membres et 1 Invité sur ce sujet

nono29

  • Newbie
  • *
  • Messages: 1
    • Voir le profil
    • E-mail
avertissement pour depassement arithmetrique
« le: Mars 17, 2023, 04:27:04 pm »
Bonjour à tous!
difficile de trier les messages alors j'expose le soucis que j'ai.
J'ai besoin d'un tableau 2d, alors j'ai recopié fidèlement (sur visual stud 2019) les explications SFML, et je suis étonné de trouver du code souligné (vert ->avertissement pour dépassement arithmétique) sur un .resize et
plus bas tjs sur une variable int width.
ça compile mais bon......
Est ce que quelqu'un pourrait me dire comment palier à ce défaut .
Je mets le bout de code et merci si quelqu'un a les compétences et surtout le temps de m'aider.
BM
c'est  width * height * 4   et  [(i+j * width)* 4] qui sont soulignés

public:
        bool load(const string& tileset, Vector2u tileSize, const int* tiles,
                unsigned int width, unsigned int height)
        {

                // charge texture du tileset
                if (!m_tileset.loadFromFile(tileset))
                        return false;

                //on redimentionne tableau vertex
                m_vertices.setPrimitiveType(Quads);
                m_vertices.resize([u]width * height * 4);[/u]

                // on rempli tableau de vertex avec un quad par tuile
                for (unsigned int i = 0; i < width; ++i)
                        for (unsigned int j = 0; j < height; ++j)
                        {
                                // on recupere n° de tuile courant
                                int tileNumber = tiles[i + j * width];

                                // on deduit position dans texture tileset
                                int tu = tileNumber % (m_tileset.getSize().x / tileSize.x);
                                int tv = tileNumber / (m_tileset.getSize().x / tileSize.x);

                                //recp pointeur vers quad à definir dans tableau vertex
                                Vertex* quad = &m_vertices[[u](i + j * width) * 4][/u];

 

anything