Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Bend3r
149 / 136 / 35
Регистрация: 29.07.2012
Сообщений: 709
#1

Invalid pointer addition - C++

26.08.2013, 19:00. Просмотров 902. Ответов 16
Метки нет (Все метки)

В чем ошибка ?
C++
1
    hf=FindFirstFileW(L""+Edit4->Text.c_str()+"\\*.*", &FindFileData);
Код ошибки:
Invalid pointer addition
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.08.2013, 19:00
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Invalid pointer addition (C++):

Invalid null pointer
Так она работает: #include <iostream> #include <conio.h> #include <list>...

invalid pointer operation
for (global_index1 = 0; global_index1 < t->dir_list->Count; global_index1++) ...

Invalid pointer operation
Добрый вечер. Возникает такая ошибка при выключении программы: invalid pointer...

Error in `./o': free(): invalid pointer
Здравствуйте Форумчане, я столкнулся с проблемой при создании проекта (если...

string, invalid null pointer
#include <stdio.h> #include <iostream> #include <string> using namespace...

Ошибка munmap_chunk(): invalid pointer: 0x0000000000401284
#include <iostream> #include <cstdlib> using namespace std; class Array{...

16
castaway
Эксперт С++
4927 / 3034 / 453
Регистрация: 10.11.2010
Сообщений: 11,089
Записей в блоге: 10
Завершенные тесты: 1
26.08.2013, 19:04 #2
А как ты так const char * складываешь? Так в С++ нельзя.

Цитата Сообщение от 0x10 Посмотреть сообщение
Для конкатенации строк - std::stringstream. Либо использовать std::string.
Либо strcat() на худой конец.
1
0x10
2554 / 1734 / 285
Регистрация: 24.11.2012
Сообщений: 4,361
26.08.2013, 19:04 #3
Ну кто ж так указатели лихо складывает... Для конкатенации строк - std::stringstream. Либо использовать std::string.
0
alsav22
5438 / 4833 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.08.2013, 19:06 #4
Первым параметром путь или что?
1
Bend3r
149 / 136 / 35
Регистрация: 29.07.2012
Сообщений: 709
26.08.2013, 19:23  [ТС] #5
Цитата Сообщение от alsav22 Посмотреть сообщение
Первым параметром путь или что?
Да, путь.

Добавлено через 1 минуту
Просто мне в любом случае необходимо писать L перед всей этой лабудой. Не могу додуматься как это сделать.
0
0x10
2554 / 1734 / 285
Регистрация: 24.11.2012
Сообщений: 4,361
26.08.2013, 19:27 #6
Bend3r, для wchar_t - std::wstringstream...
1
Bend3r
149 / 136 / 35
Регистрация: 29.07.2012
Сообщений: 709
26.08.2013, 19:31  [ТС] #7
Проблема решена.
0
alsav22
5438 / 4833 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.08.2013, 19:34 #8
Цитата Сообщение от Bend3r Посмотреть сообщение
Да, путь.
Если путь, то обратный слеш нужно двойным деать, а здесь сделан одинарный.
0
Bend3r
149 / 136 / 35
Регистрация: 29.07.2012
Сообщений: 709
26.08.2013, 19:38  [ТС] #9
Цитата Сообщение от alsav22 Посмотреть сообщение
Если путь, то обратный слеш нужно двойным деать, а здесь сделан одинарный.
Я это знаю, ты мне вот что помоги.
Вот у меня есть путь.
C++
1
 wchar_t const *path = L"banners\\*.*";
Мне необходимо вместо banners, чтобы там было значение Edit4->Text. Пытаюсь сделать так.
C++
1
2
3
 wchar_t const *path = L"";
strcat(path,Edit4->Text);
strcat(path,"\\*.*");
Выбивает ошибку мол char на char* и прочую ересть. Надоело уже...
Дать бы Страуструпу под дых...
0
Убежденный
Ушел с форума
Эксперт С++
15941 / 7252 / 1176
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
26.08.2013, 19:41 #10
C++
1
2
3
4
std::wstring path;
 
path += Edit4->Text;
path += L"\\*.*";
1
castaway
Эксперт С++
4927 / 3034 / 453
Регистрация: 10.11.2010
Сообщений: 11,089
Записей в блоге: 10
Завершенные тесты: 1
26.08.2013, 19:41 #11
C++
1
2
3
wchar_t path[256];
wcscpy( path, Edit4->Text );
wcscat( path, L"\\*.*" );
http://www.cplusplus.com/reference/cwchar/wcscat/
strcat не для UNICODE.
1
0x10
26.08.2013, 19:42
  #12

Не по теме:

Цитата Сообщение от Bend3r Посмотреть сообщение
Дать бы Страуструпу под дых...
При чем тут Страуструп, если не умеете пользоваться языком?

1
castaway
Эксперт С++
4927 / 3034 / 453
Регистрация: 10.11.2010
Сообщений: 11,089
Записей в блоге: 10
Завершенные тесты: 1
26.08.2013, 19:44 #13
Поправил 11-й пост
0
Bend3r
149 / 136 / 35
Регистрация: 29.07.2012
Сообщений: 709
26.08.2013, 19:46  [ТС] #14
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
void __fastcall TForm2::Button1Click(TObject *Sender)
{
 
std::wstring path;
 
path = path + Edit4->Text;
path = path + L"\\*.*";
 
    WIN32_FIND_DATAW wfd;
    HANDLE const hFind = FindFirstFileW(path, &wfd);
 
    if (INVALID_HANDLE_VALUE != hFind)
    {
        do
        {
            if ( (0 == (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) &&
                 (0 == (wfd.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)) )
            {
                Memo1->Lines->Add(&wfd.cFileName[0]);
            }
        } while (FALSE != FindNextFileW(hFind, &wfd));
 
        FindClose(hFind);
    }
 
 
}
Ошибки:
'operator+' not implemented in type 'wstring' for arguments of type 'UnicodeString'
Cannot convert 'wstring' to 'const wchar_t *'

Добавлено через 1 минуту
Цитата Сообщение от castaway Посмотреть сообщение
C++
1
2
3
wchar_t path[256];
wcscpy( path, Edit4->Text );
wcscat( path, L"\\*.*" );
http://www.cplusplus.com/reference/cwchar/wcscat/
strcat не для UNICODE.
Cannot convert 'UnicodeString' to 'const wchar_t *'

Добавлено через 56 секунд
Цитата Сообщение от 0x10 Посмотреть сообщение
При чем тут Страуструп, если не умеете пользоваться языком?
Что-то умею, что-то не умею. Пол года учу. Все еще впереди.
0
castaway
Эксперт С++
4927 / 3034 / 453
Регистрация: 10.11.2010
Сообщений: 11,089
Записей в блоге: 10
Завершенные тесты: 1
26.08.2013, 19:50 #15
Цитата Сообщение от Bend3r Посмотреть сообщение
Cannot convert 'UnicodeString' to 'const wchar_t *'
Я не сильно разбираюсь в C++ Builder и в его приблудах, а точнее вообще не разбираюсь. Чем является Edit4->Text ?

Ты уверен что эта проблема с исправленным 11-м постом!?
0
Bend3r
149 / 136 / 35
Регистрация: 29.07.2012
Сообщений: 709
26.08.2013, 19:52  [ТС] #16
Цитата Сообщение от castaway Посмотреть сообщение
Я не сильно разбираюсь в C++ Builder и в его приблудах, а точнее вообще не разбираюсь. Чем является Edit4->Text ?
Текст боксом. Проблема решена, все большое спасибо! Вот код
C++
1
2
3
wchar_t path[256];
wcscpy( path, Edit4->Text.c_str());
wcscat( path, L"\\*.*" );
Добавлено через 47 секунд
Цитата Сообщение от castaway Посмотреть сообщение
Ты уверен что эта проблема с исправленным 11-м постом!?
Edit4->Text.c_str(); И все отлично!!!
0
castaway
Эксперт С++
4927 / 3034 / 453
Регистрация: 10.11.2010
Сообщений: 11,089
Записей в блоге: 10
Завершенные тесты: 1
26.08.2013, 19:52 #17
Цитата Сообщение от Bend3r Посмотреть сообщение
Текст боксом.
Я имел в виду тип.
1
26.08.2013, 19:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.08.2013, 19:52
Привет! Вот еще темы с решениями:

Ошибка компиляции: invalid null pointer
Не могу понять, в чем проблема.. Кто знает? #include "stdafx.h" #include...

Vector ругается на использование классов E2397 и Invalid pointer operation
Не получается использовать vector с собственными классами выдает либо ...

Из-за чего может возникать следующая ошибка: "Invalid null pointer"?
NEBTELA* fggff; //указатель на объект базового класса fggff = new Zvezda;...

Shared_ptr - stored pointer, owned pointer
Зачем в shared_ptr нужен хранимый указатель, отличный от владеемого? И так в...


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

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

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