pointers- все статьи тега ➜ страница 3
Разница между std:: reference wrapper и простым указателем?
зачем нужно иметь std::reference_wrapper? Где его следует использовать? Чем он отличается от простого указателя? Как его производительность сравнивается с простым указателем? ...
Когда использовать указатели в C# / .NET?
Я знаю, что C# дает программисту возможность доступа, использовать указатели в небезопасном контексте. Но когда это нужно? при каких обстоятельствах использование указателей становится неизбежным? Это только из соображений производительности? также почему C# предоставляет эту функциональность через небезопасный контекст и удаляет из нее все управляемые преимущества? Можно ли использовать указатели без потери каких-либо преимуществ управляемой среде, теоретически? ...
Как сравнить указатели?
Предположим, у меня есть 2 указателя: int *a = something; int *b = something; если я хочу сравнить их и посмотреть, указывают ли они на одно и то же место (a == b) работает? ...
Есть ли способ определить размер массива C++ программно? А если нет, то почему?
этот вопрос был вдохновлен аналогичным вопросом: Как удалить[] "знать" размер массива операндов? мой вопрос немного иначе: есть ли способ определить размер массива c++ программно? А если нет, то почему? каждая функция, которую я видел, которая принимает массив, также требует целочисленного параметра, чтобы дать ему размер. Но, как указал связанный вопрос,delete[] должен знать размер памяти, чтобы быть освободившему. рассмотрим этот код C++: int* arr = new int[256]; printf("Size of arr: %dn ...
Почему я не могу конвертировать 'типа char*' в 'const чарса* константность*' в C?
следующий фрагмент кода (правильно) дает предупреждение в C и ошибку в C++ (используя gcc & g++ соответственно, протестированный с версиями 3.4.5 и 4.2.1; MSVC, похоже, не заботится): char **a; const char** b = a; Я могу понять и принять это. C++ решение этой проблемы состоит в том, чтобы изменить b на const char * const *, который запрещает переназначение указателей и не позволяет вам обойти const-корректность (C++ FAQ). char **a; const char* const* b = a; однако в чистом C исправленн ...
Есть ли площадки, где указатели на разные типы имеют разные размеры?
стандарт C позволяет указателям на разные типы иметь разные размеры, например sizeof(char*) != sizeof(int*) разрешено. Однако для этого требуется, чтобы указатель был преобразован в void* а затем преобразуется обратно в исходный тип, он должен сравнить как равный своему исходному значению. Поэтому логически следует, что sizeof(void*) >= sizeof(T*) для всех типов T, верно? на наиболее распространенных платформах, используемых сегодня (x86, PPC, ARM и 64-разрядные варианты и т. д.), размер в ...
Возврат указателя на векторный элемент в c++
у меня есть вектор myObjects в глобальном масштабе. У меня есть метод, который использует std::vector<myObject>::const_iterator чтобы пересечь вектор и сделать некоторые сравнения, чтобы найти конкретный элемент. Как только я нашел нужный элемент, я хочу иметь возможность вернуть указатель на него (вектор существует в глобальной области видимости). Если я вернусь &iterator, Я возвращаю адрес итератора или адрес того, на что указывает итератор? мне нужно бросить const_iterator вернуть ...
Арифметика указателя [закрыто]
есть ли у кого-нибудь хорошие статьи или объяснения (блоги, примеры) для арифметики указателей? Представьте, что аудитория-это кучка Java-программистов, изучающих C и c++. ...
В чем разница между str==NULL и str[0]=='' в C?
Я хочу знать разницу между str == NULL и str[0] == '': int convert_to_float(char *str, double *num) { if ((str == NULL) || (str[0] == '')) return(-1); *num = strtod(str, (char **)NULL); return(0); } Я использую gcc на Linux. ...
В чем разница между нулевым указателем и пустым указателем?
в чем разница между a нулевой указатель и пустой указатель? ...