Code: char *strr; char *modstrr; modstrr = strr; int main(){ char test[]="test"; strr = test; printf("%s\n%x\n", strr, modstrr); } есть в программе глобальный указатель, в этом куске кода он strr. Мне нужно создать еще один глобальный указатель modstrr так чтобы он был == strr. Т.е. что бы modstrr всюду и везде указывал на тоже на что и strr. Разные вариант попробывал, чета не как неполучается Бля наверно так низя сделать
Code: #include <iostream> char *strr; char*& modstrr = strr; int main(){ char test[]="test"; strr = test; std::cout << "strr: " << strr << "\nmodstrr: " << modstrr << '\n'; strr = "oops"; std::cout << "strr: " << strr << "\nmodstrr: " << modstrr << '\n'; }
на С++ действительно работает А вот на си Code: #include <stdio.h> char *strr; char *&modstrr = strr; int main(){ char test[]="test"; strr = test; //printf("%s\n%s\n", strr, &modstrr); } выдает Code: testpointer.c:5: error: expected identifier or ‘(’ before ‘&’ token
Приветствую всех. Есть код: Code: char * qwe3 = new char[90]; qwe3[1] = 0x8C; printf("%02X", qwe3[1]); выводит FFFFFF8C а надо просто 8С Хотя 0x64 выводит правильно... Почему так? и в чём различие между %02X и %X ?
ладно, 02 в %02X это минимальное число символов Но почему выводит FFFFFFC8 а не C8? а 64 выводит правильно...
Дело в том, что по дефолту считается что число знаковое. по этому числа от 0 до 7F являются положительными а 80 до FF отрицательными. Вот он и думает что если число больше 7F то оно отрицательное. А с учетом того что система 32-х битная, то получается что 0 - число которое больше 7F = 0xFFFFFFxx попробуй так printf("%0.2X", (unsigned char)qwe3[1]);
А зачем мне 0x? Я RC4 шифрую (возращается строка непечатаемых символов) Мне просто надо получить хекс значения
VC++ =)))))) Мне удобней через wsprintfA Для io, если не ошибаюсь, нужны лишние инклуды, которые мне не нужны Сделал всё так: Code: char* rc4_encode_string(char* str, char* keystr) { rc4_key * key = new rc4_key; prepare_key((unsigned char *)keystr, strlen(keystr), key); char * encode_str = new char[strlen(str)]; strcpy(encode_str, str); rc4((unsigned char *)encode_str, strlen(encode_str), key); int length = strlen(encode_str)*2; char * result = new char[length]; memset(result, 0x00, length); for (int i=0;i<strlen(encode_str);i++) { char* temp = new char[1]; wsprintfA(temp, "%0.2X", (unsigned char)encode_str[i]); strcat(result, temp); } return result; } // RC4 -> Раз уж я тут, гляньте, мож мона, что поправить.(ошибок нет, этот код работает на ура)
Для использования IO потоков нужен хидер - iostream. А если ты используешь stdio.h, stdlib.h и так далее - то ты пишешь на С, не зависимо от того, в чем компилируешь =)
как я понимаю вы на managed c++... если да то впихните в класс, наиболее логичный для размещения List<String> var; и расставьте модификаторы доступа public static, и обращайтесь к переменно через класс... (но надо быть осторожным, всё же лучше нарыть ссылку на объект)
да почитай ты книжки какие нибудь, статьи. Как передавать данные хотя бы через конструкторы форм, синглетоны что такое.