[ C / C++ ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. _Great_

    _Great_ Elder - Старейшина

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,119
    Reputations:
    1,139
    Ky3bMu4
    Чтобы делать такие смелые заявления, нужно сначала разобраться, что такое C Run-Time Library (CRT)
     
  2. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    10x 2 Ni0x, который подсказал правильный вариант, но потом куда-то ушел...
    но теперь выводятся все символы, начиная с lpStr[1], а не просто второй символ эдита. нужно выводить посимвольно... какие есть идеи?
     
  3. Ni0x

    Ni0x Elder - Старейшина

    Joined:
    27 Aug 2006
    Messages:
    338
    Likes Received:
    157
    Reputations:
    37
    _Great_ , пример не мой, копирайты стоят, просто показан принцип генерации чисел, кому действительно надо - исправит.
     
    1 person likes this.
  4. GlOFF

    GlOFF Elder - Старейшина

    Joined:
    8 May 2006
    Messages:
    689
    Likes Received:
    484
    Reputations:
    4
    Piflit Попробуй так:
    //Ni0x, _Great_ , Ky3bMu4 Спс за примеры и помощь. Пошел тестить псевдо случайность ;)
     
    #284 GlOFF, 12 Sep 2007
    Last edited: 12 Sep 2007
    3 people like this.
  5. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    как перевести тип из char * в unsigned char?
     
    1 person likes this.
  6. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Указатель ты можешь привести к другому типу, но он всегда останется указателем, а просто к типу unsigned char ты его никогда не приведёшь... Если ты имел в виду первый случай, то сделай так

     
    1 person likes this.
  7. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    char *char_ptr;

    (unsigned char)char_ptr;

    хз, компайлер съел... только пока не работает... скорее всего ошибка в другом
     
    2 people like this.
  8. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Piflit, компайлер оптимизирующий, он мог этот бред проигнорировать... Бред приводить указатель (адрес памяти) к беззнаковому типу.
     
  9. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    а что делать, если функция обрабатывает строку и возвращает char * , который потом надо записать в массив unsigned char abc[123] ?
     
  10. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Вопроса не понял... Ну у тебя есть указатель... Если известна длина строки по возвращённому указателю - копируй с помощью strcpy или memcpy в массив abc... Например:

    или так:

     
  11. Joker-jar

    Joker-jar Elder - Старейшина

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    (unsigned char *)&char_ptr;
     
  12. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    char_ptr - это уже указатель, нафига ему &?
     
  13. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    Joker-jar, мне нужен unsigned char, а не unsigned char *.
    (unsigned char *)&char_ptr; возвращает unsigned char * (так сказал компилятор).

    groundhog, спасибо, думаю, должно получиться
     
  14. Joker-jar

    Joker-jar Elder - Старейшина

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    groundhog, ага, не заметил :)

    Вот так вроде пашет:
    Code:
      char * ch;
      unsigned char * uuch;
      unsigned char uch;
    
      (* ch) = -10;
      uuch = (unsigned char*)ch;
      uch = (* uuch); //ц = 246
     
  15. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Piflit, дружище, не в обиду - ну почитай ты этот сраный мануал по типам, указателям и приведению типов... :) Я вот уверен, что ты после всей этой информации всё равно не до конца понял суть указателей... :)
     
  16. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    groundhog кстати,
    strcpy(&data, (unsigned char*)hex); // hex типа char * , data - массив типа unsigned char
    'strcpy' : cannot convert parameter 1 from 'unsigned char *' to 'char *'
     
  17. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    А так strcpy(&data, hex)?
     
  18. Joker-jar

    Joker-jar Elder - Старейшина

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    А если так?
    Code:
      char * some_ptr;
      unsigned char abc[123] = "";
      int i = 0;
    
      some_ptr = "stroka";
    
      while ((* some_ptr) != 0)
        {
          abc[i] = (* some_ptr);
          some_ptr++;
          i++;
        }
    аналогично:
    Code:
      char * some_ptr;
      unsigned char abc[123] = "";
    
      some_ptr = "stroka";
    
      StrCopy(abc, some_ptr);
     
    #298 Joker-jar, 16 Sep 2007
    Last edited: 16 Sep 2007
    1 person likes this.
  19. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31

    та же ошибка
     
    3 people like this.
  20. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Я тупарь и идиот. Всё дело в том, что функция имеет такой прототип:

    т.е. в данном случае нужен вызов strcpy((char*)&data, hex);
     
    1 person likes this.
Thread Status:
Not open for further replies.