Articles of pointers

sizeof (int) == sizeof (void *)?

Existe um tipo inteiro com o mesmo tamanho do ponteiro? Garantido em todas as microarquiteturas?

alocar matriz em C

Eu quero alocar uma matriz. esta é a única opção: int** mat = (int**)malloc(rows * sizeof(int*)) for (int index=0;index<row;++index) { mat[index] = (int*)malloc(col * sizeof(int)); }

Nos manipuladores HTTP Go, por que o ResponseWriter é um valor, mas a solicitação é um ponteiro?

Estou aprendendo o Go escrevendo um aplicativo para o GAE, e essa é a assinatura de uma function de manipulador: func handle(w http.ResponseWriter, r *http.Request) {} Eu sou novato ponteiro aqui, então porque é o object Request um ponteiro, mas o ResponseWriter não? Existe alguma necessidade de ter isto desta forma ou isto é apenas […]

std :: map, ponteiro para mapear o valor da chave, isso é possível?

std::map myMap; std::map::iterator i = m_myMap.find(some_key_string); if(i == m_imagesMap.end()) return NULL; string *p = &i->first; A última linha é válida? Eu quero armazenar este ponteiro p em outro lugar, será válido para toda a vida do programa? Mas o que acontecerá se eu adicionar mais elementos a este mapa (com outras chaves exclusivas) ou remover […]

O ponteiro de function faz o programa lento?

Eu li sobre os pointers de function em C. E todos disseram que vai fazer o meu programa correr devagar. É verdade? Eu fiz um programa para verificar isso. E consegui os mesmos resultados nos dois casos. (meça a hora.) Então, é ruim usar o ponteiro de function? Desde já, obrigado. Para resposta para alguns […]

O ponteiro de tipo puncionado de referência de referência quebrará as regras de alias restritas

Eu usei o seguinte trecho de código para ler dados de arquivos como parte de um programa maior. double data_read(FILE *stream,int code) { char data[8]; switch(code) { case 0x08: return (unsigned char)fgetc(stream); case 0x09: return (signed char)fgetc(stream); case 0x0b: data[1] = fgetc(stream); data[0] = fgetc(stream); return *(short*)data; case 0x0c: for(int i=3;i>=0;i–) data[i] = fgetc(stream); return […]

Expressões de ponteiro: ** ptr ++, * ++ * ptr e ++ ** ptr use

Eu estou tentando minhas mãos em uma literatura de ponteiro C. Em uma das ilustrações, encontrei o seguinte código. # include int main() { static int a[]={0,1,2,3,4}; static int *p[]={a, a+1, a+2, a+3, a+4}; int **ptr; ptr =p; **ptr++; printf(“%d %d %d\n”, ptr-p, *ptr-a, **ptr); *++*ptr; printf(“%d %d %d\n”, ptr-p, *ptr-a, **ptr); ++**ptr; printf(“%d %d […]

Quando usar pointers e quando não?

Estou acostumado a fazer programação em Java, onde você nunca precisa pensar em pointers ao programar. No entanto, no momento estou escrevendo um programa em C ++. Ao fazer aulas que tenham membros de outras classs, quando devo usar pointers e quando não devo? Por exemplo, quando eu iria querer fazer isso: class Foo { […]

Quais são os perigos potenciais quando se usa boost :: shared_ptr?

De que maneiras você pode atirar no próprio pé ao usar boost::shared_ptr ? Em outras palavras, que armadilhas devo evitar quando uso boost::shared_ptr ?

Qual é a diferença entre um ponteiro nulo e um ponteiro vazio?

Qual é a diferença entre um ponteiro nulo e um ponteiro vazio ?