Ex 2 Série 6

Ex 2 Série 6

par Abiola Anton Philippe Adeye,
Number of replies: 3

Bonjour,

Dans le corrigé de la partie 3 de l'exercice 2 de la série 6 on fait la vérification suivante: 

if (SIZE_MAX / lignes < colonnes) {
        resultat->m = NULL;
      } 

A quoi sert cette vérification ? Pourquoi est-elle nécessaire ?
Merci,
Abiola Adeye
In reply to Abiola Anton Philippe Adeye

Re: Ex 2 Série 6

par Benedek Hauer,
Bonjour,

C'est pour checker que lignes*colonnes ne provoquent pas de overflow (cas dans lequel on ne peut pas faire de calloc(lignes*colonne,...) parce qu'on n'a pas assez de mémoire).
Comme on ne peut pas checker que lignes * colonnes > SIZE_MAX (parce que ici aussi  (lignes * colonnes) pourrait provoquer un overflow), cela revient au même que checker que SIZE_MAX / lignes < colonnes.

Est-ce que ça répond à ta question?