1. C++ / Говнокод #3516

    +165

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    void ArrayClass::SetSize(int aSize)
       {
       iMaxLength = aSize;
       }
     
    void ArrayClass::SetElement(int aPos, unsigned char aChar)
      {
      if(aPos >= 0 && aPos < iMaxLength)
         {
         iRawArray[aPos] = aChar;
         }
      }

    Запостил: Говногость, 19 Июня 2010

    Комментарии (16) RSS

    • Используется так:
      myArray.SetSize(bytesToProcess);
        for(currentPos = 0; currentPos < bytesToProcess; currentPos++)
           {
           myArray.SetElement(currentPos, aByte);
           }
      Ответить
    • Самопальный массив с проверкой диапазонов. Классика.
      Ответить
      • классический обход костылей с++

        стлом вашим психически здоровый человек под дулом пистолета пользоваться не будет
        Ответить
        • правильно! прогресс не стоит на месте!! давайте как в ЖабаСкрипте всегда массивы расширят если доступаются к несуществующему елементу!!!

          я не защищаю стл. но мля у многих просто и мозги не там, и руки не из того места растут - бо как не сделай, все им не то.
          Ответить
        • В stl есть функция at() для vector.
          Ответить
    • для таких случаев есть ассерт...
      запись в несуществующий элемент - это ошибка и ее надо исправлять, а не подставлять костыли чтоб оно и так работало...
      Ответить
      • > для таких случаев есть ассерт...

        а если у меня в данный момент важные ресурсы, которые нужно правильно закрыть? вся программа упадёт в ундефайнд состоянии.
        Ответить
    • Хммм... Как насчет realloc-а при смене размера массива или чего-нибудь подобного? Или iRawArray - статический массив размером в полстека? :-)
      Ответить

    Добавить комментарий