Perguntas com a marcação «pointers»

90
É possível inicializar um ponteiro C para NULL?

Eu tenho escrito coisas como char *x=NULL; na suposição de que char *x=2; criaria um charponteiro para o endereço 2. Mas, no Tutorial de programação GNU C diz que int *my_int_ptr = 2;armazena o valor inteiro2 em qualquer endereço aleatório que esteja my_int_ptrquando for alocado. Isso...

88
Como comparar ponteiros?

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

86
Qual é a diferença entre uma referência C # e um ponteiro?

Eu não entendo muito bem a diferença entre uma referência C # e um ponteiro. Ambos apontam para um lugar na memória, não é? A única diferença que posso descobrir é que os ponteiros não são tão inteligentes, não podem apontar para nada no heap, são isentos da coleta de lixo e podem apenas fazer...

59
O que faz ((void (*) ()) buf) (); significar?

Estou resolvendo um desafio de exploração binária no picoCTF e me deparei com este pedaço de código: ((void (*)())buf)(); onde bufé uma matriz de caracteres. Eu resolvi o desafio, mas não consigo entender o que exatamente está fazendo. Eu olhei para esta discussão, mas não consegui entender. O...

20
Como a macro lambda cria uma lambda?

Encontrei este código no GitHub, mas não o entendi: #define lambda(ret_type, _body) ({ ret_type _ _body _; }) Então: int (*max)(int, int) = lambda(int, (int x, int y) { return x > y ? x : y; }); int max_value = max(1, 2); // max_value is 2 O que os sublinhados estão fazendo dentro do...