• Бесплатный ВЕБИНАР по OSINT с Екатериной Тьюринг: ➡️9 февраля в 19:00 (мск) пройдет урок

    Как безопасно искать информацию в открытых источниках

    🔥 Записаться 🔥

Конвентирование типов переменных...

  • Автор темы Автор темы enclave
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
E

enclave

Как присвоить значение переменной типа int символьному массиву?

char array[64]; int x = 1001;

array[] = x? // Вот здесь!

Можно ли вообще как-то конвентировать типы переменных?
 
если тебе число нужно представить строкой, то приведение типов тут не причём!

Код:
char array[64];
int x = 1001;

sprintf(array, "%d", x);

а конвертировать можно повсякому! смотря что и куда тебе нужно. :)
 
А какой заголовочный файл нужен для sprintf()?
 
2enclave:
Чтобы записать int в массив char, то без ассма не обойтись!

// Пример для VC++
void main(void)
{
char array[64];
int x = 1001;
int index, ofs;

index = 3;
ofs = (int)&array[index];

// array[] = x:
_asm{
mov esi, [ofs]
mov eax, [x]
mov [esi], eax
}
}

Здесь по смещению в памяти array+index учитывая '0' будет записан X.

Для TC/BC немного сложнее, смотря для какого случая:
- либо переменная в сегменте кода DS=CS
- либо DS!=CS

в этих 2 случаях будет применяться разная оптимизация и разный подход.
 
Как присвоить значение переменной типа int символьному массиву?

char array[64]; int x = 1001;

array[] = x? // Вот здесь!

Можно ли вообще как-то конвентировать типы переменных?

Всё очень просто:
array=IntToStr(x)
или
array=IntToStr(x).c_str();
точно не помню.
А назад x=StrToInt(array);

Удачи
 
Код:
	char array[4];
int x = 1001;
*reinterpret_cast<int*>(array) = x;
 
Тут не все так просто. Если int 2 байта, то он поместиться в два char(a). Если 4 то соответственно в 4. Иначе придется оставлять только младшие разряды. И есть ли вообще смысл таким заниматься?
Попробуй так:
Код:
union {
char mas[2];
int i;
} a;

Присвой переменной какое нить значение, а потом обращайся к нему как к массиву. Тогда a.mas[0] младшая часть инт, a.mas[1] -- старшая(или наоборот ;) :( ).
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!