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.


13
Localizando duplicatas no tempo O (n) e no espaço O (1)
Entrada: Dada uma matriz de n elementos que contém elementos de 0 a n-1, com qualquer um desses números aparecendo inúmeras vezes. Objetivo: encontrar esses números repetidos em O (n) e usando apenas espaço de memória constante. Por exemplo, seja n 7 e a matriz seja {1, 2, 3, 1, …
121 c++  c  algorithm 

23
O que pertence a uma ferramenta educacional para demonstrar as suposições injustificadas que as pessoas fazem em C / C ++?
Eu gostaria de preparar uma pequena ferramenta educacional para SO, que deve ajudar programadores iniciantes (e intermediários) a reconhecer e desafiar suas suposições injustificadas em C, C ++ e suas plataformas. Exemplos: "números inteiros" "todo mundo tem ASCII" "Eu posso armazenar um ponteiro de função em um vazio *" Imaginei …


21
Por que o endereço zero é usado para o ponteiro nulo?
Em C (ou C ++, nesse caso), os ponteiros são especiais se tiverem o valor zero: sou aconselhado a definir ponteiros como zero após liberar sua memória, porque significa que liberar o ponteiro novamente não é perigoso; quando ligo para malloc, ele retorna um ponteiro com o valor zero, se …
121 c++  c  memory  pointers 

6
socket connect () vs bind ()
O sistema connect()e as bind()chamadas 'associam' o descritor do arquivo de soquete a um endereço (normalmente uma combinação de ip / porta). Seus protótipos são como: - int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); e int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); Qual é a diferença …





6
Por que o segmento .bss é obrigatório?
O que eu sei é que as variáveis ​​globais e estáticas são armazenadas no .datasegmento e os dados não inicializados estão no .bsssegmento. O que não entendo é por que temos segmento dedicado para variáveis ​​não inicializadas? Se uma variável não inicializada tiver um valor atribuído em tempo de execução, …

7
Fundido para int x chão
Existe alguma diferença entre estes: float foo1 = (int)(bar / 3.0); float foo2 = floor(bar / 3.0); Pelo que entendi, ambos os casos têm o mesmo resultado. Existe alguma diferença no código compilado?
120 c++  c  floating-point 

13
imprimir pilha de chamadas em C ou C ++
Existe alguma maneira de despejar a pilha de chamadas em um processo em execução em C ou C ++ toda vez que uma determinada função é chamada? O que tenho em mente é algo assim: void foo() { print_stack_trace(); // foo's body return } Onde print_stack_tracefunciona de forma semelhante ao …
120 c++  c  linux  callstack 

22
Posição do bit menos significativo que está definido
Estou procurando uma maneira eficiente de determinar a posição do bit menos significativo definido em um número inteiro, por exemplo, para 0x0FF0 seria 4. Uma implementação trivial é esta: unsigned GetLowestBitPos(unsigned value) { assert(value != 0); // handled separately unsigned pos = 0; while (!(value & 1)) { value >>= …


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.