Описание тега pointer-arithmetic
You can perform a limited number of arithmetic operations on pointers. These operations are:
increment, decrement, addition, subtraction, comparison and assignment.
1
ответ
Как получить доступ к массиву символов по-разному
У меня есть функция, использующая арифметику указателей, чтобы распечатать все символы внутри символа *: void printCharArray(char* c,int n) { for (char*p=c+n-1; n; n--) cout << *p--; } Приведенный выше код работает, но я хочу попробовать друго…
02 авг '15 в 13:30
1
ответ
Почему примитивы диапазона массива потребляют свои источники?
Примитивы диапазона, которые предназначены для встроенных массивов, потребляют свои источники, но можно легко спроектировать систему диапазона, которая скорее будет основана на .ptr источника (на первый взгляд это более гибко). struct ArrayRange(T) …
24 авг '15 в 08:13
1
ответ
Цикл динамически размещенного 2d массива с арифметикой указателей
У меня есть динамически размещенный массив 2d, и я хотел бы перебрать его с помощью арифметики с указателями, потому что я не буду знать количество строк и число столбцов до времени выполнения. Я знаю, как это сделать с массивом 1d: int *arr = new i…
25 сен '15 в 03:03
4
ответа
Некоторое недопонимание о приведении в обобщенной функции
У меня есть некоторое недопонимание учебника из моего класса. Есть функция называется print_Arr(), это универсальная функция, которая получает указатель на массивы двойных или целых чисел и печатает его. Вот код: int main() { int a[] = { 2,7,6,4,1 }…
16 июн '18 в 15:13
1
ответ
Контрольная сумма Флетчера для группы байтов произвольной длины
Я пытаюсь реализовать функцию для вычисления 8-битной контрольной суммы Флетчера для области памяти переменной длины, идея состоит в том, что я мог бы передать 2-байтовый короткий или 2-килобайтный массив и использовать ту же функцию. Я только иссле…
08 дек '15 в 03:41
1
ответ
Визуализация OpenCV для понимания арифметики указателей
Я только учусь OpenCV. В книге, которую я читаю, рекомендуется, чтобы для операций, в которых мне нужно было коснуться каждого пикселя, я использовал двойной цикл for с арифметикой указателя, stepWidth и т. Д., Чтобы перейти от одного к следующему. …
24 ноя '12 в 00:58
2
ответа
Арифметика с двойным указателем
У меня есть 2D матрица matrix[m][n]; Я знаю, что матрица - это двойной указатель с типом int**, Я хотел бы получить двойной указатель, указывающий на подматрицу исходной матрицы. Например, я хочу, чтобы подматрица запускалась для ячейки (1,1). Как я…
17 ноя '16 в 06:08
1
ответ
Установить int структуры из буфера памяти
У меня больше косметический вопрос: У меня есть поток памяти (void *), который я использую в примере как "cur_ptr". Теперь я хочу прочитать первые байты в int ("версия") структуры ("a_struct"). Мой код, который работает: int *version; version = cur_…
10 окт '11 в 08:06
2
ответа
Странная ошибка печати массива структур в C
Привет всем У меня возникли проблемы с диагностикой причины ошибки при печати массива структур в C. В отдельном заголовочном файле (назовите его header.h) У меня есть следующая структура typedef'd: typedef struct instruction prog; struct instruction…
24 фев '16 в 16:48
2
ответа
Этот кастомный malloc в порядке?
Мне нужно написать собственный malloc для программирования на GPU. Будет ли это работать правильно? void* malloc(int size, int* bytesUsed, uchar* memory){ int startIdx = (*bytesUsed); (*bytesUsed) += size; return (void*)(memory+startIdx); } Я новичо…
14 июл '16 в 22:23
1
ответ
C - как преобразовать указатель в массиве в индекс?
Во многих поисковых функциях C (bsearch приходит на ум), если результат найден, возвращается указатель на место в массиве. Как я могу преобразовать этот указатель в индекс в массиве, который был найден (используя арифметику указателей, я предполагаю…
26 апр '10 в 07:13
1
ответ
Арифметика на литой указателе
Приведенный ниже код печатает переданную строку в виде шестнадцатеричных значений, я использую ее для проверки строк, содержащих непечатаемые символы, перед передачей в последовательной сети. Я понимаю код, но просто не уверен, почему, если мы предп…
27 фев '15 в 05:25
4
ответа
Указатель Арифметический Инкремент пост / префикса
У меня возникают проблемы с выполнением логики определенного фрагмента кода ниже. int i[] = { 21, 4, -17, 45 }; int* i_ptr = i; std::cout << (*i_ptr)++ << std::endl; // 21 std::cout << *i_ptr << std::endl; // 22 std::cout <…
02 ноя '17 в 17:16
1
ответ
-Ведантический неверный тип аргумента для приращения после приведения
У меня есть код как while (n--) { *((char*)dest++) = *((char*)src++); } где dest а также src являются пустыми указателями и n размер. Цель состоит в том, чтобы повторно реализовать функцию memcpy. При компиляции этого кода с помощью gcc все прекрасн…
25 сен '14 в 07:53
4
ответа
Почему при смене подписи main возникает ошибка segfault?
Я пытаюсь разобраться в C и написал эту программу, которая отображает килобайт моей оперативной памяти в случайном месте. Вот код, и он отлично работает: #include <stdio.h> int main(){ char *mem; for(int i =0; i < 1024; i++){ mem++; printf(…
25 авг '16 в 20:58
1
ответ
Прямой указатель на любой элемент с количеством элементов динамической длины без арифметики с указателем
Можно ли написать программу на C++, которая выделяет введенное пользователем количество элементов и дает им введенные пользователем значения, а затем может указывать непосредственно на любой элемент из только что выделенных, без необходимости исполь…
02 янв '17 в 14:17
4
ответа
Арифметика странного указателя в цикле for в C
Я программирую msp430 с IAR EBW. Я получил выражение следующим образом: adres = (uint_fast16_t *) 0x8602 + (0x0200*i); в цикле, так что я увеличивается с каждым циклом. По какой-то причине он пропускает каждый из двух адресов и дает мне: 0x8602 0x8A…
27 янв '14 в 23:44
1
ответ
Безопасна ли арифметика указателей в итерациях при переполнении?
Я очень часто видел итерации массива с использованием простой арифметики указателей даже в более новом коде C++. Интересно, насколько они безопасны на самом деле, и стоит ли их использовать. Рассмотрим этот фрагмент (он также компилируется в C, если…
02 окт '13 в 05:05
4
ответа
Как C получает адрес строки для 2d массива
Может кто-нибудь объяснить мне, как C получает правильный адрес памяти для строки, когда вы используете только один индекс для доступа к 2d массиву? Пример - int array2D[2][2] = {1,2,3,4}; printf ( "starting address of row2 = %p" , array2D[1]); Я по…
24 авг '12 в 15:25
1
ответ
Сохранение строки как char[] с размещением new и возвращением
Я хочу написать класс, который содержит информацию о строке в памяти и которая может вернуть ее мне. Итак, я начал с Союза, который содержит размер строки. (почему объединение здесь не имеет значения, но оно должно быть объединением для других типов…
25 сен '15 в 07:47