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
Como malloc () e free () funcionam?
Eu quero saber como malloce freetrabalhar. int main() { unsigned char *p = (unsigned char*)malloc(4*sizeof(unsigned char)); memset(p,0,4); strcpy((char*)p,"abcdabcd"); // **deliberately storing 8bytes** cout << p; free(p); // Obvious Crash, but I need how it works and why crash. cout << p; return 0; } Ficaria muito grato se a resposta …


18
Palavra-chave "register" em C?
O que a registerpalavra - chave faz na linguagem C? Eu li que ele é usado para otimizar, mas não está claramente definido em nenhum padrão. Ainda é relevante e, se sim, quando você o usaria?
273 c  memory  keyword 


13
Como definir um tipo enumerado (enum) em C?
Não tenho certeza de qual é a sintaxe adequada para o uso de enumerações C. Eu tenho o seguinte código: enum {RANDOM, IMMEDIATE, SEARCH} strategy; strategy = IMMEDIATE; Mas isso não é compilado, com o seguinte erro: error: conflicting types for ‘strategy’ error: previous declaration of ‘strategy’ was here O …
272 c  enums 




30
Como evitar correntes "se"?
Supondo que eu tenho esse pseudo-código: bool conditionA = executeStepA(); if (conditionA){ bool conditionB = executeStepB(); if (conditionB){ bool conditionC = executeStepC(); if (conditionC){ ... } } } executeThisFunctionInAnyCase(); As funções executeStepXdevem ser executadas se e somente se as anteriores tiverem êxito. De qualquer forma, a executeThisFunctionInAnyCasefunção deve ser chamada …

8
O que realmente abre um arquivo?
Em todas as linguagens de programação (que eu uso pelo menos), você deve abrir um arquivo antes de poder ler ou gravar nele. Mas o que essa operação aberta realmente faz? As páginas de manual para funções típicas não dizem nada além de 'abrir um arquivo para leitura / gravação': …
266 c  linux 


3
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 …
264 c  pointers  dereference 

14
Como crio uma matriz de seqüências de caracteres em C?
Eu estou tentando criar uma matriz de seqüências de caracteres em C. Se eu usar este código: char (*a[2])[14]; a[0]="blah"; a[1]="hmm"; O gcc me dá "aviso: atribuição do tipo de ponteiro incompatível". Qual é a maneira correta de fazer isso? edit: Estou curioso para saber por que isso deve dar …
263 c  arrays  string 

10
Teto rápido de uma divisão inteira em C / C ++
Dados os valores inteiros xe y, C e C ++ retornam como quociente q = x/yo piso do equivalente em ponto flutuante. Estou interessado em um método de devolver o teto. Por exemplo, ceil(10/5)=2e ceil(11/5)=3. A abordagem óbvia envolve algo como: q = x / y; if (q * y …
262 c++  c  algorithm  math 


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.