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.


1
Seg-falha específica do gcc-10.0.1
Eu tenho um pacote R com código compilado C que é relativamente estável por um bom tempo e é frequentemente testado em uma ampla variedade de plataformas e compiladores (windows / osx / debian / fedora gcc / clang). Mais recentemente, uma nova plataforma foi adicionada para testar o pacote …


9
'\ 0' e printf () em C
Em um curso introdutório de C, aprendi que, ao armazenar, as seqüências de caracteres são armazenadas com caractere nulo \0no final. Mas e se eu quisesse imprimir uma string, digamos, printf("hello")embora tenha descoberto que isso não termina com a \0seguinte declaração printf("%d", printf("hello")); Output: 5 mas isso parece ser inconsistente, …
21 c  printf  stdout  c-strings 

2
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 …


3
O endereço de memória estática int arr [10] sempre termina em 060
Eu tenho um programa ac que se parece com isso main.c #include <stdio.h> #define SOME_VAR 10 static int heap[SOME_VAR]; int main(void) { printf("%p", heap); return 0; } e gera isso quando executo o programa compilado algumas vezes 0x58aa7c49060 0x56555644060 0x2f8d1f8e060 0x92f58280060 0x59551c53060 0xd474ed6e060 0x767c4561060 0xf515aeda060 0xbe62367e060 Por que sempre termina …
17 c  arrays  memory 

1
Por que o endereço __libc_start_main é sempre o mesmo no GDB, mesmo que o ASLR esteja ativado?
Breakpoint 1, 0x00007ffff7de8060 in __libc_start_main () from /usr/lib/libc.so.6 (gdb) r The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /home/firstlove/projects/org-ioslide/example/a.out Breakpoint 1, 0x00007ffff7de8060 in __libc_start_main () from /usr/lib/libc.so.6 (gdb) r The program being debugged has been started already. Start it …
16 c  linux  gdb  libc  aslr 


1
Por que o np.dot é impreciso? (matrizes n-dim)
Suponha que tomemos np.dotduas 'float32'matrizes 2D: res = np.dot(a, b) # see CASE 1 print(list(res[0])) # list shows more digits [-0.90448684, -1.1708503, 0.907136, 3.5594249, 1.1374011, -1.3826287] Números. Exceto, eles podem mudar: CASO 1 : fatiaa np.random.seed(1) a = np.random.randn(9, 6).astype('float32') b = np.random.randn(6, 6).astype('float32') for i in range(1, len(a)): print(list(np.dot(a[:i], …
15 python  c  arrays  numpy  precision 


5
Por que declarações sem efeito são consideradas legais em C?
Perdoe se esta pergunta é ingênua. Considere o seguinte programa: #include <stdio.h> int main() { int i = 1; i = i + 2; 5; i; printf("i: %d\n", i); } No exemplo acima, as demonstrações 5;e i;parece totalmente supérfluo, mas os compila código sem avisos ou erros por padrão (no …
13 c 

5
Comparando um pouco com um booleano
Digamos que eu tenha um conjunto de sinalizadores, codificado em uint16_t flags. Por exemplo AMAZING_FLAG = 0x02,. Agora, eu tenho uma função. Essa função precisa verificar se eu quero alterar o sinalizador, porque se eu quiser fazer isso, preciso escrever para piscar. E isso é caro. Portanto, quero uma verificação …

1
Por que o tempo relatado por time () às vezes é 1 segundo atrás do componente segundos de timespec_get () no código C?
O seguinte trecho de código: struct timespec ts; for (int x = 0; x < 100000000; x++) { timespec_get(&ts, TIME_UTC); long cTime = (long) time(NULL); if (cTime != ts.tv_sec && ts.tv_nsec < 3000000) { printf("cTime: %ld\n", cTime); printf("ts.tv_sec: %ld\n", ts.tv_sec); printf("ts.tv_nsec: %ld\n", ts.tv_nsec); } } produz esta saída: ... cTime: …
12 c  time  posix  timespec 


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.