Articles of pointers em

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?

Usos para vários níveis de dereferências de ponteiro?

Quando o uso de pointers em qualquer idioma requer que alguém use mais de um, digamos um ponteiro triplo. Quando faz sentido usar um ponteiro triplo em vez de usar apenas um ponteiro normal? Por exemplo: char * * *ptr; ao invés de char *ptr;

Por que não é legal converter “ponteiro para ponteiro para não-const” para um “ponteiro para ponteiro para const”?

É legal converter um ponteiro para não-constante em um ponteiro para const. Então, por que não é legal converter um ponteiro para ponteiro para non-const em um ponteiro para ponteiro para const ? Por exemplo, por que o seguinte código é ilegal: char *s1 = 0; const char *s2 = s1; // OK… char *a[MAX]; […]

Qual é a diferença entre char a =? String ?; e char * p =? string?;

Como diz o header, qual é a diferença entre char a[] = ?string?; and char *p = ?string?; Esta pergunta foi feita a mim em entrevista. Eu nem entendo a afirmação. char a[] = ?string? Aqui o que é ? operador? É uma parte de uma string ou tem algum significado específico?

Que tipo de ponteiro eu uso quando?

Ok, então a última vez que escrevi o C ++ para uma vida, o std::auto_ptr era todo o std lib disponível, e o boost::shared_ptr era toda a raiva. Eu nunca realmente olhei para os outros tipos de ponteiro inteligentes fornecidos. Eu entendo que o C ++ 11 agora fornece alguns dos tipos que surgiram, mas […]

O que exatamente é nullptr?

Agora temos o C ++ 11 com muitos novos resources. Um interessante e confuso (pelo menos para mim) é o novo nullptr . Bem, não há mais necessidade para a macro desagradável NULL . int* x = nullptr; myclass* obj = nullptr; Ainda assim, não estou entendendo como funciona o nullptr . Por exemplo, o […]