int StrLength(char *str);
int HexToDouble(char *str);
int main()
{
char str[] = "134";
HexToDouble(str);
}
int HexToDouble(char *str)
{
int size = StrLength(str) * 4;
int *dblarr = new int[size];
for (int i = 4; i < size; (i + 4))
{
for (int j = 4; j > 0; j--)
{
dblarr[j] = (int)(*str) % 2;
}
str++;
}
for (int i = 0; i < size; i++)
{
cout << dblarr[i];
}
return 0;
}
int StrLength(char *str)
{
int count = 0;
while (*str)
{
str++;
count++;
}
return count - 1;
}
Если закрыть глаза на "особенности кода", то похоже Ваше проблема закралась здесь
for (int i = 4; i < size; (i + 4))
{
for (int j = 4; j > 0; j--)
{
dblarr[j] = (int)(*str) % 2;
}
str++;
}
здесь бесконечный цикл по i
, (так как условие выполняется всегда, а i
не увеличивается). Внутри цикла увеличивается позиция str
и в конце концов оно будет показывать за пределами массива и будет показывать на память "не процесса". Конструкция dblarr[j] = (int)(*str) % 2;
- вообще чудесна:)
Как исправить? а кто его знает - логика всей программы мне мало понятна.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте, нашел на неком ресурсе подобный код(немного его модифицировал под себя):
По умолчанию при запуске с++ кода открывается внешняя консольЯ же хочу видеть вывод моей программы в качестве одной из вкладок в нижнем поле...