Форум программистов, компьютерный форум CyberForum.ru

Ошибка при компиляции кода - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ динамический массив http://www.cyberforum.ru/cpp-beginners/thread592235.html
В динамическом массиве найти наибольшее и наименьшее значение, и разместить все числа, которые находятся между ними в обратном порядке.
C++ Считывание данных из файла и запись в динамические массивы Помогите реализовать следующую задачу: Есть файл содержания 40.1 50.1 60.1 70.1 11:15:23 4.03.2012 40.2 50.2 60.2 70.2 11:16:27 4.03.2012 40.3 50.3 60.3 70.3 11:18:23 4.03.2012 40.4 50.4 60.4 70.4 11:20:23 4.03.2012 40.5 50.5 60.5 70.5 11:25:43 4.03.2012 40.6 50.6 60.6 70.6 11:35:23 4.03.2012 40.7 50.7 60.7 70.7 11:42:25 4.03.2012 40.8 50.8 60.8 70.8 11:50:23 4.03.2012 http://www.cyberforum.ru/cpp-beginners/thread592226.html
C++ Что случилось с "<<"?
Здравствуйте!! Помогите, пожалуйста. 76 строка очень надо // univer7.cpp : Defines the entry point for the console application. // #include "stdafx.h"
Даны две строки длиной до 80 символов C++
Даны две строки длиной до 80 символов. Необходимо: Удалить заданный символ в каждой строке. Описать в виде отдельной функции удаление заданного символа в заданной строке:
C++ Дана строка длиной не более 80 символов, оканчивающаяся точкой. Подчеркнуть все гласные буквы в строке http://www.cyberforum.ru/cpp-beginners/thread592212.html
Дана строка длиной не более 80 символов, оканчивающаяся точкой. Подчеркнуть все гласные буквы в строке.
C++ пользователь вводит пароль,программа должна его вычислить перебором как объяснил мне учитель,программа должна после ввода пользователем пароля найти его,методом перебора.Например:ввел 123546,программа начинает перебор 123456-неверно,идёт дальше,123465-неверно,и так далле.Реализовать это нужно как с числами,так и с буквами.То есть по сути нужно просто задать массивы букв(латинских)и цифр.Как это всё сделать не совсем представляю.Нигде не могу найти-кто может... подробнее

Показать сообщение отдельно
Blood of Demon
0 / 0 / 0
Регистрация: 16.04.2012
Сообщений: 4
31.05.2012, 11:53     Ошибка при компиляции кода
не могу понять в чем ошибка при компиляции этого кода:

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include <unistd.h>
#include <stdlib.h>
#include <assert.h>
#include <stdio.h>
#include <string.h>
 
typedef unsigned char byte;
 
byte *rotlexcmp_buf = NULL;
int rottexcmp_bufsize = 0;
 
int rotlexcmp(const void *l, const void *r)
{
    int li = *(const int*)l, ri = *(const int*)r, ac=rottexcmp_bufsize;
    while (rotlexcmp_buf[li] == rotlexcmp_buf[ri])
    {
        if (++li == rottexcmp_bufsize)
            li = 0;
        if (++ri == rottexcmp_bufsize)
            ri = 0;
        if (!--ac)
            return 0;
    }
    if (rotlexcmp_buf[li] > rotlexcmp_buf[ri])
        return 1;
    else
        return -1;
}
 
void bwt_encode(byte *buf_in, byte *buf_out, int size, int *primary_index)
{
    int indices[size];
    int i;
 
    for(i=0; i<size; i++)
        indices[i] = i;
    rotlexcmp_buf = buf_in;
    rottexcmp_bufsize = size;
    qsort (indices, size, sizeof(int), rotlexcmp);
 
    for (i=0; i<size; i++)
        buf_out[i] = buf_in[(indices[i]+size-1)%size];
    for (i=0; i<size; i++)
    {
        if (indices[i] == 1) {
            *primary_index = i;
            return;
        }
    }
    assert (0);
}
 
void bwt_decode(byte *buf_in, byte *buf_out, int size, int primary_index)
{
    byte F[size];
    int buckets[256];
    int i,j,k;
    int indices[size];
 
    for (i=0; i<256; i++)
        buckets[i] = 0;
    for (i=0; i<size; i++)
        buckets[buf_in[i]] ++;
    for (i=0,k=0; i<256; i++)
        for (j=0; j<buckets[i]; j++)
            F[k++] = i;
    assert (k==size);
    for (i=0,j=0; i<256; i++)
    {
        while (i>F[j] && j<size)
            j++;
        buckets[i] = j;
    }
    for(i=0; i<size; i++)
        indices[buckets[buf_in[i]]++] = i;
    for(i=0,j=primary_index; i<size; i++)
    {
        buf_out[i] = buf_in[j];
        j=indices[j];
    }
}
 
int main()
{
    byte buf1[] = "BANANA";
    int size = strlen(buf1);
    byte buf2[size];
    byte buf3[size];
    int primary_index;
 
    bwt_encode (buf1, buf2, size, &primary_index);
    bwt_decode (buf2, buf3, size, primary_index);
 
    assert (!memcmp (buf1, buf3, size));
    printf ("Result is the same as input, that is: <%.*s>\n", size, buf3);
    return 0;
}
Вот что выдает компилятор в строке int size = strlen(buf1); :
invalid conversion from `byte*' to `const char*'
initializing argument 1 of `size_t strlen(const char*)'

Может кто знает?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru