Perguntas com a marcação «c»

C é uma linguagem de programação de uso geral usada para programação do sistema (SO e incorporado), bibliotecas, jogos e plataformas cruzadas. Essa tag deve ser usada com perguntas gerais sobre o idioma C, conforme definido na norma ISO 9899 (a versão mais recente, 9899: 2018, exceto quando especificado em contrário - também tag as solicitações específicas da versão com c89, c99, c11, etc.). C é diferente de C ++ e não deve ser combinado com a tag C ++, sem um motivo racional.


16
Ouvi dizer que i ++ não é thread-safe, é ++ i thread-safe?
Ouvi dizer que i ++ não é uma instrução thread-safe, pois na montagem ela se reduz a armazenar o valor original como uma temporária em algum lugar, incrementando-o e substituindo-o, o que pode ser interrompido por uma troca de contexto. No entanto, estou pensando sobre ++ i. Pelo que posso …
90 c++  c  multithreading 


12
Gerenciamento de Memória C
Sempre ouvi dizer que em C você realmente precisa observar como administra a memória. E ainda estou começando a aprender C, mas até agora não tive que fazer nenhuma atividade relacionada ao gerenciamento de memória. Sempre imaginei ter que liberar variáveis ​​e fazer todo tipo de coisa feia. Mas não …
90 c  memory 

29
Ponteiros de teste para validade (C / C ++)
Existe alguma maneira de determinar (programaticamente, é claro) se um determinado ponteiro é "válido"? Verificar se há NULL é fácil, mas e coisas como 0x00001234? Ao tentar desreferenciar este tipo de ponteiro, ocorre uma exceção / falha. É preferível um método de plataforma cruzada, mas específico de plataforma (para Windows …
90 c++  c  validation  pointers  null 



5
gdb: “Nenhuma tabela de símbolos carregada”
Continuo recebendo essa mensagem de erro ao tentar adicionar um ponto de interrupção no gdb. Usei estes comandos para compilar: gcc -g main.c utmpib2.c -o main.o and: cc -g main.c utmpib2.c -o main.o and also: g++ -g main.c utmpib2.c -o main.o Também tentei "-ggdb" em vez de "-g" e ainda …
90 c  gdb 


7
Mapeie uma matriz 2D em uma matriz 1D
Eu quero representar uma matriz 2D com uma matriz 1D. Uma função passará os dois indicadores (x, y) e o valor a armazenar. Esses dois indicadores representariam um único elemento de uma matriz 1D e configurariam de acordo. Eu sei que a matriz 1D precisa ter o tamanho de arrayWidth …

7
Transmitindo um ponteiro de função para outro tipo
Digamos que eu tenha uma função que aceita um void (*)(void*)ponteiro de função para uso como retorno de chamada: void do_stuff(void (*callback_fp)(void*), void* callback_arg); Agora, se eu tiver uma função como esta: void my_callback_function(struct my_struct* arg); Posso fazer isso com segurança? do_stuff((void (*)(void*)) &my_callback_function, NULL); Eu olhei para esta questão …

14
A pilha cresce para cima ou para baixo?
Eu tenho este trecho de código em c: int q = 10; int s = 5; int a[3]; printf("Address of a: %d\n", (int)a); printf("Address of a[1]: %d\n", (int)&a[1]); printf("Address of a[2]: %d\n", (int)&a[2]); printf("Address of q: %d\n", (int)&q); printf("Address of s: %d\n", (int)&s); O resultado é: Address of a: 2293584 …
90 c  memory  stack 

10
Diferença entre const & const volatile
Se declararmos uma variável como volatilesempre que o valor fresco for atualizado Se declararmos uma variável como constentão o valor dessa variável não será alterado Então, const volatile int temp; qual é a utilidade de declarar a variável tempcomo acima? O que acontece se declararmos como const int temp?
90 c  embedded 


8
Obtendo a largura do terminal em C?
Estou procurando uma maneira de obter a largura do terminal de dentro do meu programa C. O que eu continuo descobrindo é algo como: #include <sys/ioctl.h> #include <stdio.h> int main (void) { struct ttysize ts; ioctl(0, TIOCGSIZE, &ts); printf ("lines %d\n", ts.ts_lines); printf ("columns %d\n", ts.ts_cols); } Mas toda vez …
89 c  linux  terminal  width 

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.