Perguntas com a marcação «pointers»

329
Ponteiros vs. valores em parâmetros e valores de retorno

No Go, existem várias maneiras de retornar um structvalor ou fatia dele. Para os individuais que eu já vi: type MyStruct struct { Val int } func myfunc() MyStruct { return MyStruct{Val: 1} } func myfunc() *MyStruct { return &MyStruct{} } func myfunc(s *MyStruct) { s.Val = 1 } Eu...

309
Qual é a diferença entre NULL, '\ 0' e 0?

Em C, parece haver diferenças entre os vários valores de zero - NULL, NULe 0. Eu sei que o caractere ASCII é '0'avaliado como 48ou 0x30. O NULLponteiro é geralmente definido como: #define NULL 0 Ou #define NULL (void *)0 Além disso, há o NULpersonagem '\0'que parece avaliar 0também. Há...

298
Ponteiros em C: quando usar o e comercial e o asterisco?

Estou apenas começando com ponteiros e estou um pouco confuso. Eu sei que &significa o endereço de uma variável e que *pode ser usado na frente de uma variável de ponteiro para obter o valor do objeto apontado pelo ponteiro. Mas as coisas funcionam de maneira diferente quando você está...

264
Por que o operador de seta (->) em C existe?

O .operador dot ( ) é usado para acessar um membro de uma estrutura, enquanto o operador de seta ( ->) em C é usado para acessar um membro de uma estrutura que é referenciada pelo ponteiro em questão. O ponteiro em si não possui nenhum membro que possa ser acessado com o operador de ponto (na...

257
Uso do operador de seta (->) em C

Estou lendo um livro chamado "Ensine-se C em 21 dias" (eu já aprendi Java e C #, por isso estou me movendo em um ritmo muito mais rápido). Eu estava lendo o capítulo sobre ponteiros e o operador-> (seta) surgiu sem explicação. Eu acho que é usado para chamar membros e funções (como o equivalente...

256
Ponteiro vs. Referência

Qual seria a melhor prática ao atribuir a uma função a variável original para trabalhar: unsigned long x = 4; void func1(unsigned long& val) { val = 5; } func1(x); ou: void func2(unsigned long* val) { *val = 5; } func2(&x); IOW: Existe algum motivo para escolher um sobre o...

246
size_t vs. uintptr_t

O padrão C garante que esse size_té um tipo que pode conter qualquer índice de matriz. Isso significa que, logicamente, size_tdeve ser capaz de manter qualquer tipo de ponteiro. Li em alguns sites que achei no Google que isso é legal e / ou sempre deve funcionar: void *v = malloc(10); size_t s =...

242
Ponteiro para o membro de dados da classe “:: *”

Me deparei com este estranho trecho de código que compila bem: class Car { public: int speed; }; int main() { int Car::*pSpeed = &Car::speed; return 0; } Por que o C ++ possui esse ponteiro para um membro de dados não estáticos de uma classe? Qual é a utilidade desse ponteiro estranho no...