Articles of pointers em

O que é um ponteiro vazio e o que é um ponteiro nulo?

Então, eu estava passando por algumas perguntas da entrevista e me deparei com uma sobre pointers nulo e nulo , que afirma: Um ponteiro sem tipo de retorno é chamado de ponteiro nulo. Pode ser qualquer tipo de dado. Isso me confundiu completamente! Parece vazio e nulo poderia ser usado indistintamente de acordo com essa […]

Modificando uma cadeia char * const

Eu sei que const char * é um ponteiro para um const char, enquanto char *const é um ponteiro constante para um char. Eu estou testando isso no seguinte código: const char *s = “hello”; // Not permitted to modify the string “hello” char *const t = “world”; // Not permitted to modify the pointer […]

C ++: É seguro converter o ponteiro para int e depois voltar para o ponteiro novamente?

É seguro converter o ponteiro para int e depois voltar para o ponteiro novamente? E se sabermos se o ponteiro é de 32 bits e int de 32 bits? long* juggle(long* p) { static_assert(sizeof(long*) == sizeof(int)); int v = reinterpret_cast(p); // or if sizeof(*)==8 choose long here do_some_math(v); // prevent compiler from optimizing return reinterpret_cast(v); […]

Ponteiros, pointers inteligentes ou pointers compartilhados?

Estou programando com pointers normais, mas ouvi falar de bibliotecas como Boost que implementam pointers inteligentes. Eu também vi que no mecanismo de renderização Ogre3D há um uso profundo de pointers compartilhados. Qual é exatamente a diferença entre os três, e devo continuar usando apenas um tipo deles?

C ++ É possível determinar se um ponteiro aponta para um object válido?

Estou aprendendo C ++ e lendo o C ++ Primer. Há uma pergunta que eu gostaria de saber a resposta: Dado um ponteiro p , você pode determinar se p aponta para um object válido? Se sim, como? Se não, por que não? Obrigado.

Desreferenciando um ponteiro inválido e, em seguida, obtendo o endereço do resultado

Considerar: int* ptr = (int*)0xDEADBEEF; cout << (void*)&*ptr; Quão ilegal é o * , dado que é usado em conjunto com um imediato e dado que não há op& op* em jogo? (Isso tem ramificações específicas para endereçar um elemento de array passado-a-fim &myArray[n] , uma expressão que é explicitamente equivalente a &*(myArray+n) . Essa […]

Como comparar pointers?

Suponha que eu tenha 2 pointers: int *a = something; int *b = something; Se eu quiser compará-los e ver se eles apontam para o mesmo lugar, funciona (a == b)?

NULL vs nullptr (Por que foi substituído?)

Eu sei que em C ++ 0x ou NULL foi substituído por nullptr em aplicativos baseados em ponteiro. Estou apenas curioso sobre o motivo exato pelo qual eles fizeram essa substituição? Em que cenário está usando nullptr over NULL benéfico ao lidar com pointers?

Existe algum motivo para verificar um ponteiro NULL antes de excluir?

Muitas vezes, vejo código herdado verificando NULL antes de excluir um ponteiro, semelhante a if (NULL != pSomeObject) { delete pSomeObject; pSomeObject = NULL; } Existe algum motivo para verificar um ponteiro NULL antes de excluí-lo? Qual é o motivo para definir o ponteiro para NULL depois?

O que posso usar em vez do operador de seta, `->`?

O que é o operador de seta ( -> ) como sinônimo?