Size: a a a

2020 August 18

Е

Егор in supapro.cxx
Astar
& в каком случае может понадобиться?
в твоём например, а так в любом сишном апи их будет завались
источник

A

Astar in supapro.cxx
Serhii Herashchenko
массивы в с++ - это не обьекты в привычном понимании этого слова, и работать с ними как с обьектами не выйдет. Это очень комплексная тема, и сразу ее понять или обьяснить не выйдет. Имя массива неявно приводится к указателю на первый елемент, когда передается в функцию, так что если хочешь работать с массивом, то функция должна выглядеть так:

void foo(int* arr, size_t size)
{
   for (size_t i = 0; i < size; ++i)
   {
       // do smth with arr[i]
   }
}


а вызывать ее следовательно надо

int arr[5];
foo(arr, 5);
Оу... Немного сложно ) но попробую понять)
источник

VS

Vladimir Suisei in supapro.cxx
Serhii Herashchenko
массивы в с++ - это не обьекты в привычном понимании этого слова, и работать с ними как с обьектами не выйдет. Это очень комплексная тема, и сразу ее понять или обьяснить не выйдет. Имя массива неявно приводится к указателю на первый елемент, когда передается в функцию, так что если хочешь работать с массивом, то функция должна выглядеть так:

void foo(int* arr, size_t size)
{
   for (size_t i = 0; i < size; ++i)
   {
       // do smth with arr[i]
   }
}


а вызывать ее следовательно надо

int arr[5];
foo(arr, 5);
массивы в си*
источник

SH

Serhii Herashchenko in supapro.cxx
Vladimir Suisei
массивы в си*
в си и так обьектов нет
источник

A

Astar in supapro.cxx
Егор
в твоём например, а так в любом сишном апи их будет завались
Ок... Попробую попрактиковаться, если что, то напишу
источник

VS

Vladimir Suisei in supapro.cxx
Serhii Herashchenko
в си и так обьектов нет
Ну вообще в либах часто есть всякие  void* или custom_struct * штуки которые по сути объекты
источник

BB

Bohdan Bessonov in supapro.cxx
Astar
Ок... Попробую попрактиковаться, если что, то напишу
Если это с++, можно попробовать использовать std::vector / std::array
Это проще, вроде
источник

TW

Tony Werner in supapro.cxx
~= ieroglif =~
Возиожно ли прочитать данные из памяти зная шестнадцетеричный адрес ?
если винда то гугли VirtualQueryEx(), ReadProcessMemory() и WriteProcessMemory()
источник

A

Astar in supapro.cxx
Bohdan Bessonov
Если это с++, можно попробовать использовать std::vector / std::array
Это проще, вроде
Так а мне придется в таком случае использовать указатели?
Мой си сильно урезанная версия для микроконтроллеров, потому боюсь std::array использовать вряд-ли получится. Но кстати с vector удавалось поработать
источник

ПК

Побитый Кирпич... in supapro.cxx
Astar
Так а мне придется в таком случае использовать указатели?
Мой си сильно урезанная версия для микроконтроллеров, потому боюсь std::array использовать вряд-ли получится. Но кстати с vector удавалось поработать
если есть С++11, то array точно будет. Для него требований по рантайму даже меньше, потому что нет аллокаций в куче
источник

A

Astar in supapro.cxx
Побитый Кирпич
если есть С++11, то array точно будет. Для него требований по рантайму даже меньше, потому что нет аллокаций в куче
Окей, спасибо за наводку, пойду пробовать
источник

~

~= ieroglif =~ in supapro.cxx
Tony Werner
если винда то гугли VirtualQueryEx(), ReadProcessMemory() и WriteProcessMemory()
Ok . а если линь ?
источник

TW

Tony Werner in supapro.cxx
~= ieroglif =~
Ok . а если линь ?
Тогда понятия не имею)
источник

SH

Serhii Herashchenko in supapro.cxx
~= ieroglif =~
Ok . а если линь ?
Google
"Read process memory linux"
источник

~

~= ieroglif =~ in supapro.cxx
Интересно просто возможно гапример от 0x0000001 до 0xffffffff прочитать всё?
источник

VS

Vladimir Suisei in supapro.cxx
~= ieroglif =~
Интересно просто возможно гапример от 0x0000001 до 0xffffffff прочитать всё?
Первые адреса (наверное, первая страница) на сколько помню считаются невалидными для любой проги
источник

VS

Vladimir Suisei in supapro.cxx
Типа nullptr это не только 0x00, но и 0x01, 0x02 ... сколько-то в начале
источник

AP

Alexander Potapov in supapro.cxx
~= ieroglif =~
Интересно просто возможно гапример от 0x0000001 до 0xffffffff прочитать всё?
Нет, только то, что мапнуто на адресное пространство процесса
источник

AP

Alexander Potapov in supapro.cxx
Очевидно что как минимум часть адресов уходит под данные ос, к которым у юзер кода нет прямого доступа
источник

T

Ternvein in supapro.cxx
~= ieroglif =~
Интересно просто возможно гапример от 0x0000001 до 0xffffffff прочитать всё?
Этот вопрос относится скорее к архитектуре и ОС.
источник