Articles of pointers de

Por que o endereço zero é usado para o ponteiro nulo?

Em C (ou C ++), os pointers são especiais se tiverem o valor zero: Preciso definir pointers para zero depois de liberar sua memory, porque isso significa que liberar o ponteiro novamente não é perigoso; quando eu chamo malloc, ele retorna um ponteiro com o valor zero se não puder me pegar na memory; Eu […]

Arrays são pointers?

Duplicar Possível: O nome da matriz é um ponteiro em C? Arrays e pointers são implementados de maneira diferente em C e C ++? Eu me deparei com essa questão porque, em ambos os casos, acessamos elementos do endereço inicial de um elemento. Então, deve haver uma relação estreita entre eles. Por favor, explique a […]

Por que cout imprimir matrizes de caracteres de forma diferente de outras matrizes?

Estou usando o C ++ para entender como exatamente os pointers funcionam. Eu tenho este pedaço de código usando matrizes, que estou usando apenas para entender como o equivalente funciona com pointers. int main() { int arr[10] = {1,2,3}; char arr2[10] = {‘c’,’i’,’a’,’o’,’\0′}; cout << arr << endl; cout << arr2 << endl; } No […]

Por que os pointers de function e pointers de dados são incompatíveis em C / C ++?

Eu li que a conversão de um ponteiro de function para um ponteiro de dados e vice-versa funciona na maioria das plataformas, mas não é garantido que funcione. Por que esse é o caso? Os dois não devem ser simplesmente endereços na memory principal e, portanto, serem compatíveis?

Testando pointers para validade (C / C ++)

Existe alguma maneira de determinar (programaticamente, é claro) se um determinado ponteiro é “válido”? Verificar NULL é fácil, mas e as coisas como 0x00001234? Ao tentar cancelar a referência a esse tipo de ponteiro, ocorre uma exceção / falha. Um método de plataforma cruzada é o preferido, mas específico da plataforma (para Windows e Linux) […]

Modificando constantes de string C?

Duplicar Possível: Por que recebo uma falha de segmentação ao gravar em uma string? Eu quero escrever uma function que inverte a string dada passada para ele. Mas eu não posso. Se eu fornecer a function doReverse (veja o código abaixo) com uma matriz de caracteres, meu código funciona bem. Eu não consigo descobrir porque […]

Posso tratar uma matriz 2D como uma matriz 1D contígua?

Considere o seguinte código: int a[25][80]; a[0][1234] = 56; int* p = &a[0][0]; p[1234] = 56; A segunda linha invoca um comportamento indefinido? Como sobre a quarta linha?

Diferenças entre unique_ptr e shared_ptr

Duplicatas possíveis: pimpl: shared_ptr ou unique_ptr pointers inteligentes (boost) explicados Alguém poderia explicar as diferenças entre shared_ptr e unique_ptr?

Por que os pointers não são inicializados com NULL por padrão?

Alguém pode explicar por que os pointers não são inicializados para NULL ? Exemplo: void test(){ char *buf; if (!buf) // whatever } O programa não pisa dentro do if porque o buf não é nulo. Eu gostaria de saber por que, em qual caso precisamos de uma variável com lixo, especialmente os pointers que […]

Qual é o ponto dos pointers de function?

Eu tenho dificuldade em ver a utilidade dos pointers de function. Eu acho que pode ser útil em alguns casos (afinal, eles existem), mas não consigo pensar em um caso em que seja melhor ou inevitável usar um ponteiro de function. Você poderia dar algum exemplo de bom uso de pointers de function (em C […]