Ky3bMu4 Чтобы делать такие смелые заявления, нужно сначала разобраться, что такое C Run-Time Library (CRT)
10x 2 Ni0x, который подсказал правильный вариант, но потом куда-то ушел... но теперь выводятся все символы, начиная с lpStr[1], а не просто второй символ эдита. нужно выводить посимвольно... какие есть идеи?
_Great_ , пример не мой, копирайты стоят, просто показан принцип генерации чисел, кому действительно надо - исправит.
Piflit Попробуй так: //Ni0x, _Great_ , Ky3bMu4 Спс за примеры и помощь. Пошел тестить псевдо случайность
Указатель ты можешь привести к другому типу, но он всегда останется указателем, а просто к типу unsigned char ты его никогда не приведёшь... Если ты имел в виду первый случай, то сделай так
char *char_ptr; (unsigned char)char_ptr; хз, компайлер съел... только пока не работает... скорее всего ошибка в другом
Piflit, компайлер оптимизирующий, он мог этот бред проигнорировать... Бред приводить указатель (адрес памяти) к беззнаковому типу.
а что делать, если функция обрабатывает строку и возвращает char * , который потом надо записать в массив unsigned char abc[123] ?
Вопроса не понял... Ну у тебя есть указатель... Если известна длина строки по возвращённому указателю - копируй с помощью strcpy или memcpy в массив abc... Например: или так:
Joker-jar, мне нужен unsigned char, а не unsigned char *. (unsigned char *)&char_ptr; возвращает unsigned char * (так сказал компилятор). groundhog, спасибо, думаю, должно получиться
groundhog, ага, не заметил Вот так вроде пашет: Code: char * ch; unsigned char * uuch; unsigned char uch; (* ch) = -10; uuch = (unsigned char*)ch; uch = (* uuch); //ц = 246
Piflit, дружище, не в обиду - ну почитай ты этот сраный мануал по типам, указателям и приведению типов... Я вот уверен, что ты после всей этой информации всё равно не до конца понял суть указателей...
groundhog кстати, strcpy(&data, (unsigned char*)hex); // hex типа char * , data - массив типа unsigned char 'strcpy' : cannot convert parameter 1 from 'unsigned char *' to 'char *'
А если так? 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);
Я тупарь и идиот. Всё дело в том, что функция имеет такой прототип: т.е. в данном случае нужен вызов strcpy((char*)&data, hex);