Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2015, 18:27   #1
lollollollol
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 218
По умолчанию

Всем хорошего дня!

Переношу проект с Windows на Linux,
при компиляции под виндовс всё хорошо, но в линуксе (ubuntu, eclipse) посыпались следующие ошибки:
Цитата:
initializing argument 2 of 'int Pos(char*, uint8_t*)' [-fpermissive]
initializing argument 2 of Void StringAdd(char*, uint8_t*, int)' [-fpermissive]
Вот функции, что с ними не так?

Код:
//Аналог Pos как в делфи
int Pos(char *array, uint8_t *find)
{
        int a,b,l,i;

        a=0;
        b=strlen(array);
        l=strlen(find);
        while (a<b) {
                i=0;
                while (i<l) {
                        if (array[a+i]!=find[i]) {
                                break;
                        }
                        i=i+1;
                        if (i==l) {
                                return a;
                        }
                }

                a=a+1;
        }
        return -1;
}


//Добавляет подстроку к строке
void StringAdd(uint8_t* buf,uint8_t* str,int count)
{
        int a,b;

        a=0;
        while (a<count) {
                if (buf[a]==0x00) { break; }
                a=a+1;
        }
        b=0;
        while (str[b]!=0x00) {
                if ((a+b)>=count) { break; }
                buf[a+b]=str[b];
                b=b+1;
        }
}

В чём проблема, подскажите? Спасибо

я так понял не нравится то, что использую указатель на начало строки, как массив? но в виндовс всё ок.

не пойму как правильно

Последний раз редактировалось Stilet; 19.05.2015 в 07:24.
lollollollol вне форума Ответить с цитированием
Старый 18.05.2015, 22:22   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Код неполный - *где* именно ошибки?
Я бы предложил заменить uint8_t на char.
waleri вне форума Ответить с цитированием
Старый 19.05.2015, 05:21   #3
lollollollol
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 218
По умолчанию

кидает на заголовки функций,
Код:
int Pos(char *array, uint8_t *find)
чем char отличается от uint8_t?

Вообще понятно, обязательно нужо указывать размер массива, т.е.
Код:
int Pos(char *array[255], uint8_t *find[255])
все ли это подводные камни?

в виндовс вместо uint8_t был byte, я незнаю как правильнее сделать, указать char, или uint8_t?

Последний раз редактировалось Stilet; 19.05.2015 в 07:25.
lollollollol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка argument not optional Vlad-y Microsoft Office Excel 2 24.04.2014 12:35
Ошибка Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource Leks123 PHP 42 16.08.2013 00:06
Ошибка с3867 function call missing argument list enjo Общие вопросы C/C++ 11 13.11.2012 17:49
Ошибка: error C2783: 'T __cdecl sumF(void)' : could not deduce template argument for 'T' julia9311 Общие вопросы C/C++ 6 04.07.2012 07:34
Ошибка Invalid argument StartMis Общие вопросы Delphi 7 24.11.2010 00:35