Вопросы по теме 'pointer-arithmetic'
Доступ к элементу за концом массива в C
Я читал книгу K & R по C и обнаружил, что арифметика указателей в C позволяет получить доступ к одному элементу за концом массива. Я знаю, что C позволяет делать с памятью почти все, но я просто не понимаю, в чем цель этой особенности?
12022 просмотров
schedule
04.10.2022
Порядок операций для разыменования и ссылки на скобки в C
Если я сделаю *ptr[x] , это будет эквивалентно *(ptr[x]) или (*ptr)[x] ?
12917 просмотров
schedule
09.02.2023
Новый метод IntPtr.Add - я упустил смысл int?
Начиная с FW 4.0, IntPtr структура имеет структуру Add :
public static IntPtr Add(
IntPtr pointer,
int offset
)
И это здорово, так как предполагается, что он ответит на все те вопросы по IntPtr математике, которые у нас были...
1466 просмотров
schedule
21.08.2022
Арифметика указателей для структур
Учитывая определение структуры, которое содержит одну двойную и три переменные типа int (всего 4 переменные), если p является указателем на эту структуру со значением 0x1000, какое значение имеет p++?
Это не проблема с домашним заданием, так что не...
26682 просмотров
schedule
05.06.2023
Арифметика указателя через границы подобъекта
Имеет ли следующий код (который выполняет арифметические операции с указателями через границы подобъектов) четко определенное поведение для типов T , для которых он компилируется (что в C++11, не обязательно должен быть POD ) или любым его...
974 просмотров
schedule
01.07.2023
Арифметика указателя на необработанных данных
Так что мне нужно обработать некоторые структурные данные, которые мне пришлось сжать странным образом для MPI_Send/Recv.
Невозможно удобно привести его к указателю на известный тип, с которым я хочу работать, а затем проиндексировать его...
695 просмотров
schedule
13.04.2023
Странное поведение при использовании указателей
У меня есть файл с некоторыми двоичными данными следующим образом.
aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55
aa 55 aa 55 36 65 fb 5f 1e 92 d8 1b 55 f7 fb 5f
1e 92 d8 1b
Я хочу извлечь значения 55 36 65 fb 5f 1e ....
64 просмотров
schedule
01.07.2022
Адрес указателя C изменяется без присваивания
Я работаю над заданием Uni здесь, и я столкнулся с проблемой. Я пытаюсь сохранить ввод строки в точке внутри структуры, используя цикл for. Позже я намерен использовать указатель на место, где были сохранены данные, для извлечения строки. Теперь...
1900 просмотров
schedule
16.01.2023
Какие значения фиктивных указателей допустимы
Это то, что давно у меня на уме. Время от времени я вижу, как люди используют 1 или -1 в качестве фиктивного значения для указателя. Чтобы сохранить потребность в другой переменной.
Можно ли использовать такие указатели? Я полагаю, что -1 в...
1921 просмотров
schedule
24.05.2023
Арифметика указателей в Go
Учитывая, что вы можете (не могу придумать отличный способ выразить это, но) манипулировать указателями в Go, возможно ли выполнять арифметические операции с указателями, как в C, скажем, для перебора массива? Я знаю, что петли в наши дни отлично...
13477 просмотров
schedule
23.09.2023
C Арифметика дробей
У меня большие трудности со следующим, что мне нужно сделать для присваивания: a. Объявить структуру данных, содержащую рациональное число. b. Напишите f'xns, которые будут +, -, *, / рациональными числами. Все f'xns должны передавать 3...
6397 просмотров
schedule
23.09.2023
Почему адрес памяти, содержащийся в указателе +1, отличается от адреса значения, на которое указывает +1
Указатель хранит адрес памяти значения, на которое указывает указатель, поэтому адрес памяти, содержащийся в указателе, совпадает с адресом памяти значения. Таким образом, добавление 1 к обоим этим адресам памяти должно давать одинаковый результат,...
267 просмотров
schedule
09.09.2023
Использование только арифметики указателя для обхода загруженной DLL/EXE для формата файла PE
Моей конечной целью было получить список имен DLL из статической таблицы данных импорта.
Я подумал, что могу сделать что-то вроде: auto data_dirs = p_loaded_image->FileHeader->OptionalHeader.DataDirectory;
А затем каким-то образом...
258 просмотров
schedule
30.03.2023
Доступ к данным с помощью указателя (переинтерпретация приведения) и . или -› оператор
Какова основная цель доступа к данным через адрес указателя с использованием reinterpret_cast. Это быстрее, если да, то как именно?
Ниже приведена программа, которая печатает те же данные структуры через файлы . оператор и через указатель...
106 просмотров
schedule
12.07.2023
(2 - 4 = -1), когда значение int присваивается указателю в C?
Я не могу понять, почему в этой программе 2 - 4 дает -1, она присваивает значения int указателям, а не адресам, я знаю, но пока я ее компилировал, компилятор выдал несколько предупреждений, но скомпилировал программу, и она выполнилась, но......
209 просмотров
schedule
27.06.2022
Если я хочу безопасно кодировать на Rust, должен ли я кодировать без использования арифметики указателей?
Я читал, что арифметика указателей в Rust может выполняться через функцию pointer.offset() , но ее всегда нужно реализовывать в unsafe code :
fn main() {
let buf: [u32; 5] = [1, 2, 3, 4, 5];
let mut ptr1: *const u32 = buf.as_ptr();...
334 просмотров
schedule
25.04.2023
Арифметика указателя в memcpy имеет странный результат
Я возвращаюсь к программированию на C через несколько лет, поэтому я думаю, что я немного заржавел, но я вижу какое-то странное поведение в своем коде.
У меня есть следующее:
memcpy(dest + (start_position * sizeof(MyEnum)), source, source_size...
368 просмотров
schedule
24.08.2022
Что означает возможно-гипотетический в правилах арифметики указателей?
В спецификации стандарта для арифметики указателей ( [expr.add]/4.2 ) мы имеем:
В противном случае, если P указывает на элемент массива i объекта массива x с элементами n ([dcl.array]), выражения P + J и J + P (где J имеет...
119 просмотров
schedule
22.10.2023
Это неопределенное поведение или нет?
Что будет на выходе следующей программы на C?
main()
{
char g[] = "geeksforgeeks";
printf("%s", g + g[6] - g[8]);
}
geeks
rgeeks
geeksforgeeks
forgeeks
Ответ 1: geeks .
Но у меня был спор с...
133 просмотров
schedule
12.04.2022
Арифметика указателя внутри структуры
Внутри массива разрешена арифметика указателя (пока результат не выходит за границы, где конечная граница находится за концом массива).
// Legit
int m[3] = {0, 1, 2};
int const *p = m;
std::cout << *p << *(p + 1) << *(p + 2)...
72 просмотров
schedule
21.01.2023