Популярные вопросы по тегу POINTERS

Использование указателей для замены значений массива int

... 5 целых чисел в массиве. Он компилируется 4 без ошибок или предупреждений и запускается, но 3 не меняет местами int. Любые предложения 2 были бы полезны !!! Вот тестировщик: #import <stdio.h> void swap( int ary[] ); int main( int argc, char*argv[] ) { int ary[] = { 25, 50 }; printf( "The array values are: %i and %i \n", ary[0], ary[1] ); swap( ary ); printf( "After swaping the values are: %i and %i \n", ary ...

Указатели и буферы фиксированного размера могут использоваться только в небезопасном контексте.

... == 0)) buffer[i] = 10; } return cBuff; } Я получаю 2 ошибки для этой 1 функции в выделенных строках: Error 1: The best overloaded method match for 'VM_Placement.Program.ParseBits(string, int*)' has some invalid arguments Error 2: Pointers and fixe ...

Как проверить, является ли указатель нулевым в Python?

... ить 6 его значение с помощью обратного вызова. Это 5 проблематично, поскольку этот указатель 4 имеет значение NULL во время первого вызова. Таким 3 образом, выполнение pointer.contents вы ...

Указатели, интеллектуальные указатели или общие указатели?

... х, таких 5 как Boost, которые реализуют интеллектуальные 4 указатели. Я также видел, что в движке рендеринга 3 Ogre3D широко используются общие указатели. В 2 ч ...

std :: unique_ptr с производным классом

... e> basePointer(new Derived); // now, how do I access the bar member? это должно быть 4 возможно, но я не могу понять как. Каждый 3 раз, когда я пытаюсь использовать basePointer.get() У меня 2 происходит сбой исполняемого файла. Заранее 1 спасибо, будем благодарны за лю ...

Копирование структуры в C с присваиванием вместо memcpy()

... populate fields in *b0 */ memcpy(b1, b0, sizeof *b1); /* copy contents of b0 into b1 */ /* free b0, b1 */ Однако эту задачу также можно выполнить, просто 5 заменив memcpy(). *b1 = *b0; /* dereferenced struct assignment */ Есть ли веская причина, по которой 4 это не так широко используется (по крайней 3 мере, из моего ограниченного опыта)? Являются 2 ли эти два метода - присвое ...

C или C++. Как сравнить две строки с указателями char *?

... ели на них? int i, j; for(i=0; i<100; i++){ for(j=0; j<100-i; j++){ if(carArray[i]!=NULL && carArray[j]!= NULL && carArray[j+1]!=NULL){ if(carArray[i]->year > carArray[j+1]->year){ swap(carArray[j], carArray[j+1]); } } } ...

Указатели и значения в параметрах и возвращаемых значениях

... шие практики в 17 отношении них. Когда бы вы использовали 16 что? Например, первый подходит для небольших 15 структур (поскольку накладные расходы минимальны), второй 14 - для больших. И третий, если вы хотите 13 максимально эффективно использовать память, потому 12 что вы можете легко повторно использовать 11 один экземпляр структуры между вызовами. Есть 10 ли какие-либо передовые практики, когда 9 их ...

С ++ пытается получить адрес функции из std :: function

... on<Return (Clazz::*)(Arguments...)> & executor) { typedef Return (Clazz::*fnType)(Arguments...); fnType ** fnPointer = executor.template target<fnType *>(); if (fnPointer != nullptr) { return (size_t) * fnPointer; } return 0; } Обновление: для захвата 1 лямбды я использую template <typename Function> struct function_traits : public function_traits<decltype(& ...

Как преобразовать значение указателя в QString?

... илятор, похоже, не 5 понимает, что делать с этим значением. Правильно 4 ли приведение к char в этом случае? Или как 3 это сделать безопаснее? Использование Visual 2 C++ с Qt 4.7.4. ИЗМЕНИТЬ Использование qulonglong, как предлагается qulonglong p = (qulonglong)this; return QString("0x%1").arg(p, 8, '0'); выдает 1 сообщение об ошибке компилятора (error C2666). ...

В чем разница между int * a [5] и int (* a) [5] »?

... работать на C и C++ п ...

Что такое двойная звезда (например, NSError **)?

... rror:(NSError **)error в документации Apple. Почему 1 две з ...

C перебирать массив char с помощью указателя

... код 7 будет: #include <stdio.h> int main (int argc, string argv[]) { char * text = "John Does Nothing"; char text2[] = "John Does Nothing"; int s_text = sizeof(text); // returns size of pointer. 8 in 64-bit machine int s_text2 = sizeof(text2); //returns 18. the seeked size. printf("first string: %s, size: %d\n second string: %s, size: %d\n", text, s_text, text2, s_text2); return 0; } Теперь я хочу опред ...

Передача производного класса функции аргумента базового класса

... inter(derived); } { std::cout << "Testing with reference argument: "; Derived derived; testReference(derived); } { std::cout << "Testing with object argument: "; Derived derived; testObject(derived); } } Результат: Testing with pointer argument: Hello world, I am Derived Testing with reference argument: Hello world, I am Derived Testing with object argument: Hello world, I am Base ...

Указатель на функцию и справочник по функциям

... ; // i even added more stars here like (****f_ref)(4) f_ptr(3); // everything just works! // all 4 statements above works just fine // the only difference i found, as one would expect: // f_ref = func2; // ERROR: read-only reference f_ptr = func2; // works fine! f_ptr(5); return 0; } Я использовал gcc версии 1 4.7.2 в Fedora / Linux ОБНОВЛЕНИЕ Мои вопросы: Почем ...

В чем разница между char * const и const char *?

... har * const и const char ...

Преобразовать строку в * uint64 в голанге

... nt64, можем ли мы проанализировать 3 этот адрес обратно в *uint64? Например: i := uint64(23473824) ip := &i str := fmt.Sprintf("%v", ip) u, _ := strconv.ParseUint(str, 0, 64) u - это uint64. Как 2 получить указат ...

Объявление указателей; звездочка слева или справа от пробела между типом и именем?

... placement of the asterisk Я встречал смешанные версии этого 17 во многих кодах. (Между прочим, это относится 16 к C и C++.) Люди, кажется, объявляют указатели 15 одним из двух способов, и я понятия не имею, какой 14 из них правильный и имеет ли это вообще 13 значение. Первый способ поставить звездочку 12 рядом с именем типа, например: someType* somePtr; Второй способ 11 - поставить ...

Что такое массив постоянных указателей в C?

... 2 в таком объявлении, как: char *const argv[] не являет ...

В чем причина использования двойного указателя при добавлении узла в связанный список?

... ct node *head, int data) { struct node* newnode = malloc(sizeof(struct node)); newnode->data = data; newnode->next = head; return newnode; } push(head,1) Обе стратегии работают. Однако 9 многие программы, использующие связанный 8 список, используют двойной указатель для 7 добавления нового узла. Я знаю, что такое 6 двойной указатель. Но если одного указателя 5 будет дос ...

C++ Можно ли определить, указывает ли указатель на действительный объект?

... указывает ли 2 p на допустимый объект? Если да, то как? Если 1 ...

Лучший способ проверить, инициализирован ли указатель

... са этим указателям (внутри 6 цикла). Но прежде чем адрес будет назначен, я 5 хочу проверить, содержит ли указатель уже 4 адрес. Я знаю, что могу инициализировать 3 каждый указатель с помощью NULL, а затем проверить 2 это с помощью: if(ptr1 == NULL) do something Но есть ли способ написать 1 что-то похожее, но без инициа ...

Возможно ли сопоставление с указателем NULL в Rust?

... r: *const i32) -> Option<i32> { if ptr.is_null() { None ...

Изменить место, где указывает указатель внутри функции

... а только 4 локальный указатель в функции. Аргументы 3 функции должны быть указателем, верно? И 2 после того, как мне изменить его, чтобы 1 он отображалс ...

Как указать указатель на int

... ostream> #include <vector> using namespace std; vector<int> test; int main() { int *ip; int pointervalue = 50; int thatvalue = 1; ip = &pointervalue; thatvalue = ip; cout << ip << endl; test.p ...

Приведение указателя к массиву (от int * к int [2])

... 031FEE4; b = 0031FEE4 Address of {type: int[2]} &b[0] = 0031FEE4; b[0] = 2 Address of {type: int[2]} &b[1] = 0031FEE8; b[1] = 3 Address of {type: int*} &c = 0031FED8; c = 008428C8 Address of {type: int*} &c[0] = 008428C8; c[0] = 2 Address of {type: int*} &c[2] = 008428D0; c[2] = 1 Как только я убедился, что знаю, где 14 находится, я попробовал несколько вещей. Первая 13 идея, к ...

Как избежать утечки памяти при использовании вектора указателей на динамически выделяемые объекты в C++?

... ого 6 класса и динамически выделяются и хранятся. Например, у 5 меня есть что-то вроде: vector<Enemy*> Enemies; и я буду производным 4 от класса Enemy, а затем динамически выделять 3 память дл ...

Как лучше всего создать подмассив из существующего массива в C++?

... р 8 того, о чем я говорю: int array1 = {1,2,3,...99,100}; int array2[5] = array1+95; Я знаю, что это неверно, но 7 у меня возникают проблемы с правильным ответом. Я 6 хочу получить элементы с 96 по 100 в array1 5 и по ...

Удаление объектов в JavaScript

... obj. Я предполагаю, что это тот 9 же объект, на который указал foo. Это меня смущает, потому 8 что я ожидал, что запись delete obj удалит объект, на 7 который obj указывал в памяти, а не только 6 переменную obj. Это потому, что сборщик мусора 5 JavaScript работает на основе сохранения 4 / освобождения, так что, если бы у меня 3 не было других переменных, указывающих на 2 объект, он был бы удален из памяти? (Кстати, мое 1 тестирован ...

Как получить шестнадцатеричный дамп данных структуры

... целей отладки мне нужен шестнадцатеричный 12 дамп структур data и pack, которые имеют тип sendip_data, действительно 11 сложную структуру. На самом деле они содержат 10 некоторую двоичную информацию, поэтому я 9 не уверен, верен ли вывод моего проекта 8 или нет. Поэтому для целей отладки я хочу 7 записать данные в файл, чтобы использовать 6 шестнадцатеричный дамп следующим образом: $hexdump -C file.txt Кроме 5 того, поскольку это генерация ...

Как выделить 2D-массив указателей в C++

... аюсь указать указателем на двумерны ...

Приведение от одного указателя к типу указателя к другому в ошибке Golang

... (**myint)(&k) ) // cannot convert &k (type **int) to type **myint print( *k ) } Мои рассуждения таковы. Все 8 типы в Golang различны, но он позволяет 7 преобразовывать один тип в другой с синтаксисом 6 преобразования типа C, если базовые типы 5 идентичны. В моем примере преобразование 4 int в myint не проблема. От '* int' до '* myint' тоже 3 нет. Это когда у вас есть указатель на у ...

Удаление указателя в C++

... простой способ использования и удаления указателя? Ошибка говорит о том, что память не была выделена, но cout вернул адрес. Во втором примере ошибка не возникает, но выполнение cout значения myPointer по-прежнему возвращает адрес памяти? Действительно ли №3 работ ...

Передача вектора между функциями через указатели

... помощь будет 11 принята с благодарностью. * Изменить / обновить * Большое спасибо 10 за помощь, но боюсь, что все еще делаю это 9 неправильно. Итак, следуя советам, я просто 8 передаю ссылку: я сделал это: первичный std::vector<float> dvertex; track.calculate( foo, &dvertex); вторичный 7 остался прежним (с проверкой! Null) первичный std::cout<<d ...

Как я могу использовать указатели в Java?

... , что программы на Java можно создавать 2 с помощью указателей и что это могут делать 1 нем ...

Постоянные ссылки на указатели

... ) { itemList.append(item); } Я не вижу значимой разницы между 7 этим и этим: QList<Item*> itemList; void addItem(Item* item) { itemList.append(item); } Но, очевидно, кто-то изо всех 6 сил старался использовать такой странный 5 ...

Разница между char * var; и char * var ;?

... но, есть ли разница между: char* var; char *var; или 1 это ...

Как в C выбрать, возвращать ли структуру или указатель на структуру?

... сделать это: something_t *make_something() { ... } void destroy_something(something_t *object) { ... } Архитектура во фрагменте кода 6 2 НАМНОГО популярнее, чем во фрагменте 1. Итак, теперь 5 я спрашиваю, зачем мне вообще возвращать 4 структуру напрямую, как в фрагменте 1? Какие 3 различия следует учитывать при выборе между 2 двумя вариантами? Кроме того, чем отличается 1 этот вариант? void make_something(someth ...

Могу ли я проверить итератор C++ на null?

... о контейнер пуст или поиск не 11 удался. Я могу вернуть vector :: end(), но 10 cplusplus.com говорит: If the container is empty, vector::end() function returns the same as vector::begin() а затем для vector 9 :: begin() он говорит: If the container is empty, the returned iterator value shall not be dereferenced. Итак, если у меня 8 пустой контейнер, vector :: end() и vector 7 :: begin() указывают на одно и то ж ...

Можно ли сохранить адрес метки в переменной и использовать goto для перехода к ней?

... вета, я понимаю ваши оговорки 10 и понимаю, почему я их использую. в любом 9 случае). До сих пор они были фантастическими, но 8 я хочу расширить функциональность таким 7 образом, чтобы у меня была возможность сохранять 6 указатели на метки, а затем переходить к 5 ним позже. Если бы этот код работал, он представлял 4 бы необходимый мне тип функциональности. Но 3 это не работает, и 30 минут поиска в Google 2 ни ...

Значение указателя по умолчанию.?

... ите, typedef struct jig { int *a; int *b; }temp; сейчас этап 1: temp *b; b= (temp*)malloc(sizeof(temp)); if(b->a != NULL) printf("a is not null\n"); else printf(" ...

C++ - передача массива неизвестного размера

... int n = sizeof(intArray) / sizeof(*intArray); cout << "Array size in function: " << n << endl; return n * (n + 1) / 2; } int main() { int anArray[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int arraySum = Sum(anArray); cout << "Array size in main: " << sizeof(anArray) / sizeof(*anArray) << endl; cout << "Sum is: " << arraySum; int a; cin >> a; retu ...

Когда использовать ссылки или указатели

... add_one(&a); // 'a' is clearly being passed destructively } С указателем всегда (более) очевидно, что 21 происходит, поэтому для API и т.п., где 20 ясность является большой проблемой, указатели 19 не более уместны, чем ссылки? Означае ...

В чем разница между char * str = "STRING" и char str [] = "STRING"?

... char *cur = str; while(*ptr != '\0') { if(*ptr != to_remove) { if(ptr != cur) { cur[0] = ptr[0]; } cur++; } ptr++; } cur[0] = '\0'; } } int main() { setbuf(stdout, NULL); { char test[] = "string test"; // stack allocation? printf(" ...

Скопируйте содержимое одного указателя в другой

... используя memcpy или просто назначив их с помощью =? Однако в нижнем примере я просто 5 протестировал это, выделив память для двух 4 указателей, затем назначив второй, изменив 3 первый .. но затем запись моего второго 2 указателя также изменяется .. Что я делаю 1 не так: /. typedef struct { int a; int b; int c; } my_struct ...

Как я могу преобразовать istream * в строку или просто распечатать ее?

... шестнадцатеричный 9 код или ячейку памяти, потому что это тип 8 *. istream *stream = res->getBlob(1); Я пытался прочитать и распечатать это 7 следующим образом: string s; while (getline(*stream, s)) cout << s << endl; Но это вылетает из-за 6 нарушения прав доступа. ...

Получить длину массива с помощью указателя

... ва, когда 4 мне известен только указатель, указывающий 3 на массив? См. следующий пример int testInt[3]; testInt[0] = 0; testInt[1] = 1; testInt[2] = 1; int* point; point = testInt; Serial.println(sizeof(testInt) / sizeof(int)); // r ...

Как я могу получить размер массива из указателя в C?

... oc() отслеживает, сколько 5 памяти было выделено, и поэтому знает длину; возможно, есть 4 способ запросить эту информацию? Что-то 3 вроде ... int length = askMallocLibraryHowMuchMemoryWasAlloced(p) / sizeof(mystruct) Я знаю, что мне нужно просто переделать 2 код, чтобы я знал n, но я бы предпочел этого 1 не делать, если это возмож ...

Как получить реальную и общую длину char * (массив символов)?

... сь всегда будет 4 (или что-то другое 3 в разных системах). У меня вопрос: как потом 2 получить длину char *? Я знаю, что кто-то может оспорить меня, что вы уже знаете его 10, потому что вы только что его создали. Я хочу знать это, потому что этот этап определения его длины может пройти долгий путь с момента его создан ...

Возврат неконстантной ссылки из константной функции-члена

... анную переменную-член 3 работает, а другая - нет? Я знаю, что функция-член 2 const должна возвращать только ссылки const, но почему 1 это не кажется верным для указателей? class ...