string a или char a

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Vlad&slav, 26 Nov 2011.

  1. Vlad&slav

    Vlad&slav Member

    Joined:
    1 Jan 2009
    Messages:
    207
    Likes Received:
    41
    Reputations:
    9
    Пишу бота, никак не определюсь как работать со строками
    1) string var - удобно но не привычно
    2) char var[100] - лишняя память не?
    3) char* var = (char*)malloc(100) - слишком частое выделение/освобождение памяти ничё срашного?

    Чё мне выбрать?
     
  2. greki_hoy

    greki_hoy Member

    Joined:
    4 Mar 2010
    Messages:
    326
    Likes Received:
    57
    Reputations:
    41
    зависит от задачи иногда может потребоватся такое форматирование что проще написать класс или набор функций специального назначения для специфических форматов когда надо паковать и персылать данные в текстовом виде ну а если просто хранить временную строку то разницы нет стек или куча кроме скорости а геморой в обоих случаях есть если буфер на стеке баги с границами никогда не знаеш сколько
    выделить если в куче надо следить за освобождением проще написать простецкий класс строк чтобы предельно мало маш кода генерировал зато удобно станет и дальше работать станет в разы проще для бота а он как минимум 20 кб ? из них строковый класс 1 - 2 кб это очень немного а если и это много то ловить грабли парится и нервничать с буферами на стеке и ручным управлением кучей для более менее большой программы это ад
     
    #2 greki_hoy, 26 Nov 2011
    Last edited: 26 Nov 2011
  3. greki_hoy

    greki_hoy Member

    Joined:
    4 Mar 2010
    Messages:
    326
    Likes Received:
    57
    Reputations:
    41
    я бы для бота написал класс размером 1 - 2 кб с основными
    функциями для строк и всю работу по освоброждению свалил
    на деструктор и кайфовал дальше от того что не приходится
    трахатся со строками
     
    1 person likes this.
  4. greki_hoy

    greki_hoy Member

    Joined:
    4 Mar 2010
    Messages:
    326
    Likes Received:
    57
    Reputations:
    41
    по теме чтиво
    http://russian.joelonsoftware.com/Articles/BacktoBasics.html
     
  5. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    937
    Likes Received:
    162
    Reputations:
    27
    Примерно так и происходит работа со строками на низком уровне. Только резервируют иногда чуть больше памяти, чем длина самой строки.
     
    #5 Chrome~, 27 Nov 2011
    Last edited: 27 Nov 2011
    1 person likes this.