С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
veverix
39 / 39 / 2
Регистрация: 14.09.2012
Сообщений: 85
#1

Непонятная ошибка - C++

14.09.2012, 16:46. Просмотров 387. Ответов 4
Метки нет (Все метки)

Прошу помочь. Нижеприведенный фрагмент кода работает, генерирует ключ, варнингов нет. В дебаге все работает отлично, в релизе выдает ошибку если длина пароля больше 7 символов (причем проходит system("pause") и только потом выдает ошибку. Среда - MSVC 2010.

main.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cmath>
#include <fstream>
#include <string>
#include "functions.h"
 
using namespace std;
 
int main(char *argc[], int argv)
{
    char* keyword = new char;
    cin>>keyword;
    unsigned char* key = createKey(keyword);
    printf("1 2 3 4 5 6 7 8 9 101112131415161718192021222324252627282930\n");
    for(int i=0; i<30; i++)
        printf("%0X", key[i]);
    printf("\n");
    system("pause");
    return 0;
}
functions.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
unsigned char* createKey(char* keyword)
{
    unsigned char* key = new unsigned char[30];
    for(int i=0; i<30; i++)
        key[i] = 5;
    for(int i=0; keyword[i]!=0; i++)
    {
        key[15*(i%2)] += keyword[i] * 25;
        key[15*(i%2)+1] += keyword[i] * 274;
        key[15*(i%2)+2] += keyword[i] * 12;
        key[15*(i%2)+3] += keyword[i] * 20;
        key[15*(i%2)+4] += keyword[i] * 357;
        key[15*(i%2)+5] += keyword[i] * 204;
        key[15*(i%2)+6] += keyword[i] * 4;
        key[15*(i%2)+7] += keyword[i] * 42;
        key[15*(i%2)+8] += keyword[i] * 26;
        key[15*(i%2)+9] += keyword[i] * 6;
        key[15*(i%2)+10] += keyword[i] * 84;
        key[15*(i%2)+11] += keyword[i] * 8;
        key[15*(i%2)+12] += keyword[i] * 23;
        key[15*(i%2)+13] += keyword[i] * 68;
        key[15*(i%2)+14] += keyword[i] * 80;
    }
    return key;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.09.2012, 16:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Непонятная ошибка (C++):

Непонятная ошибка - C++
Всем привет! Вообщем вот функция, которая переводит двоичное число в десятичное, + ещё пару кусков кода, чтобы было понятно, что и откуда...

Непонятная ошибка - C++
Задание:С помощью табуляции сделать прогу,которая выводит таблицу.Надо ,чтоб там был цикл While /* * proga.cpp * * Created on:...

Непонятная ошибка - C++
Пробую написать подключаемый модуль к файловому менеджеру ФАР. Программа, не хочет компилится, затсряла на непонятной ошибке Плагин...

непонятная ошибка - C++
Начал изучать с++. Все шло хорошо, но потом я столкнулся с проблемой, использовал bass.lib и bass.h. при компиляции выходит такая...

Непонятная ошибка - C++
Здравствуйте, есть код, в котором два раза выполняется одна и та же последовательность, первый раз выполняется без ошибок, во второй раз...

Непонятная ошибка - C++
Не могу понять, где неправильно. У меня есть такая матрица А 1 4 2 1 3 6 1 5 2 2 3 5 Мне же её надо преобразовать к такому...

4
Algiz
160 / 160 / 13
Регистрация: 23.02.2011
Сообщений: 347
14.09.2012, 16:54 #2
>> char* keyword = new char;
Лол, ты в курсе, что keyword у тебя длинной в один символ
0
kotleta
42 / 42 / 11
Регистрация: 13.09.2012
Сообщений: 196
14.09.2012, 17:19 #3
veverix

у вас нет синтаксических ошибок. Ошибка логическая. Вот здесь.

char* keyword = new char;
cin>>keyword;


Вы выделяете память под ОДИН символ (это первая строка0
Во второй строке вы из страндартного потока ввода считаете этот символ в выделенную под него область
0
veverix
39 / 39 / 2
Регистрация: 14.09.2012
Сообщений: 85
14.09.2012, 17:31  [ТС] #4
Благодарю. Странно, но обычно так работало и я думал что память под следующие символы выделяется автоматически.
0
Algiz
160 / 160 / 13
Регистрация: 23.02.2011
Сообщений: 347
16.09.2012, 15:42 #5
используй std::string, если хочешь, что бы память выделялась автоматически
0
16.09.2012, 15:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2012, 15:42
Привет! Вот еще темы с ответами:

Непонятная ошибка - C++
Мне дана матрица коэффициентов системы линейных уравнений в необычном виде: Исходная СЛУ 4x1 + 2x2 + 9x3 = 1 x2 + 6x3 = 7 4x1 + 2x3...

Непонятная ошибка - C++
Доброго времени суток! Не могу понять в чём ошибка. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; void...

Непонятная ошибка - C++
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;locale.h&gt; int i; int fact (int n){ if ( n&lt;1 )...

непонятная ошибка - C++
Здравствуйте. Вот в этой программе у меня пишет ошибку: cpp(60) : error C2065: 'j_max' : undeclared identifier. Хотя если вместо Y...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.