Perguntas com a tag [c]
C é uma linguagem de programação de computadores de propósito geral usado para sistemas operacionais, jogos e outros trabalhos de alta performance e é claramente distinto do C++. Foi desenvolvido em 1972 por Dennis Ritchie para uso com o sistema operacional UNIX. NÃO use esta tag se a pergunta for sobre C++ ou C# (apesar dos nomes serem parecidos, são linguagens diferentes)
4,926 perguntas
2
votos
2
respostas
217
visitas
Qual a forma correta de liberar memoria de struct com matrizes e afins em C?
Quando tenho uma struct com algum vetor, matriz ou algo do tipo, usando memoria alocada dinamicamente, ao liberar a memoria alocada pela struct também libera a memoria alocada por toda a sua estrutura?...
-3
votos
1
resposta
236
visitas
Por alguma razão, quando coloco entradas no meu código em C que possuem acentuação o 'fgets' para de ler quando chega no acento
// FUNÇÃO PRINCIPAL
#include <stdio.h>
#include <windows.h>
#include <locale.h>
#include "functions.h"
#include "functions.c"
#define sucess 0;
int main()
{
...
0
votos
1
resposta
123
visitas
Agregação em C: membro de uma struct declarado como ponteiro para outro struct ou void pointer?
Para exemplificar, considere o código abaixo:
typedef struct dados_s
{
char *nome;
int idade;
} dados_t;
typedef struct node_s
{
dados_t *data;
struct node_s *next;
} node_t;
node_t *...
-2
votos
1
resposta
105
visitas
Meu EOF não funciona como esperado, alguém tem alguma sugestão de como ajeitar isso? [fechada]
Bom, estou tentando usar EOF em código e ele meio que buga, procurei o porque é pelo que parece é porque estou utilizando variáveis que excedem o valor de um LONG_MAX e queria saber como posso ...
-3
votos
0
respostas
39
visitas
Implementar uma função que dois conjuntos e sua relação, deve ser determinada se a relação é reflexiva, simétrica e transitiva [fechada]
#include<stdio.h>
#define max 25
#define tam_conj 5
void leitura_conjuntos(int conjunto[], int num_conjunto);
void leitura_relacao(int[][2], int *num_pares);
int verificacao_reflexiva(int v1[], ...
-3
votos
0
respostas
66
visitas
Blackjack em C - Meu jogo está fechando sozinho no trecho final do código [fechada]
Estou criando um jogo de Blackjack (21) porém ao chegar no trecho onde determina-se o vencedor do jogo o terminal onde o jogo está sendo executado é fechado.
Notei que isso ocorre apenas quando há ...
-4
votos
0
respostas
101
visitas
Erro de Compilação - Visual Studio Code [fechada]
Escrevi um codigo pra uma atividade, que necessita de verificar os numeros de 1 a 500, que se encaixam na tripla de pitagoras (A soma dos catetos quadrados deve ser igual a hipotenusa ao quadrado). ...
1
voto
2
respostas
119
visitas
Execução direta e por interpretação fazem o mesmo processo?
Eu estou lendo o livro Organização Estruturada de Computadores, de Tanenbaum, e em certo trecho ele diz:
Após a especificação da linguagem de
máquina, L, para um novo computador, a equipe de projeto ...
5
votos
1
resposta
199
visitas
Onde as Strings literais ficam armazenadas?
Considere o seguinte código em C:
#include <stdio.h>
int main(void)
{
printf("Hello, world!\n");
return 0;
}
Onde a String "Hello, world!\n" fica armazenada na ...
-4
votos
2
respostas
219
visitas
Utilizar Strings em uma estrutura personalizada em C (typedef struct)
Olá! estou tentando armazenar strings em uma estrutura de dados personalizada (typedef struct), estou utilizando uma biblioteca para trabalhar com strings em C, porem os dados não estão sendo ...
-3
votos
0
respostas
71
visitas
Ordenação de lista encadeada BubbleSort c [fechada]
Lista.h
#include <stdlib.h>
#include <stdio.h>
typedef struct lista Lista;
struct lista
{
int valor;
struct lista * proximo;
};
//Operação Criacao
Lista * ...
-2
votos
0
respostas
136
visitas
Ordem Crescente em C [fechada]
Poderiam me ajudar a resolver esse exercício?
Peça ao usuário para digitar dez valores numéricos e ordene por ordem crescente esses valores, guardando-os num vetor. Ordene o valor assim que ele for ...
-3
votos
0
respostas
521
visitas
Jogo de Batalha Naval em C [fechada]
Estou fazendo um jogo de batalha naval em C e gostaria de saber como posso fazer para os tiros dados pelo usuário aparecerem em uma matriz do mapa. Aqui está parte do código:
int batalha (char luta)
{
...
-3
votos
1
resposta
145
visitas
Pesquisa de valor exato ou aproximado em vetor desordenado em C
Estou tentando escrever um algoritmo em C que lê um valor inteiro N e um vetor de 10 posições. Que busque o valor dentro do vetor, se existir informar a posição, porém se não existir, encontrar o ...
-1
votos
1
resposta
109
visitas
Como posso implementar uma recursividade num método que implementou a iteratividade, tendo as mesmas entradas e o mesmo retorno? O código está em C
#include <stdio.h>
#include <stdlib.h>
int *concatenarDoisVetores(
int *vetor1, int vetor1Posicoes, int *vetor2, int vetor2Posicoes)
{
// uso da iteratividade:
int *vetor3;
...
8
votos
1
resposta
430
visitas
Como diferentes linguagens de programação se comunicam?
Uma dúvida que sempre tive e que me traz curiosidade é como diferentes linguagens de programação se comunicam entre si.
Não é tão raro ver diferentes projetos que usam linguagens diferentes em um ...
0
votos
2
respostas
253
visitas
Converter valor decimal para binário em C
Olá, tenho o seguinte exercício:
Faça um programa que leia números positivos e os converta em binário. Cada número binário deverá ser salvo em uma linha de um arquivo texto. O programa termina quando ...
0
votos
1
resposta
400
visitas
Arquivos - Linguagem C
Estou estudando C e acabei de chegar no conteúdo de arquivos, no qual estou tendo muita dificuldade. São diversas funções para o manejo dos arquivos e eu não sei exatamente se estou me saído bem ou ...
-1
votos
1
resposta
112
visitas
Como resolver o problema do printf no meu código? (Ele não imprime saída)
O objetivo do código é quebrar a cifra de Vigenère, usando o método de Kasiski para encontrar o comprimento da chave, análise de frequência para descobrir a chave. E acontece que não sei o porquê dele ...
0
votos
1
resposta
161
visitas
Alocação dinâmica, linguagem C
Estou fazendo alguns exercícios em C, e não estou achando onde ocorre o erro. Segue o enunciado: 6) Escreva um programa que aloque dinamicamente uma matriz de inteiros. As dimensões da matriz deverão ...
1
voto
1
resposta
589
visitas
Uso de "return 0" em funções void é realmente necessário? [duplicada]
Gostaria de entender se existe a obrigatoriedade do return 0 no final de uma função void.
Exemplo:
#include <stdio.h>
#include <stdlib.h>
void escrevaNaTela(); //Declarando a função
int ...
-1
votos
1
resposta
84
visitas
Como vejo os valores dos registradores no disassembly de um 'olá mundo'?
Eu sei que para ver o código assembly de um arquivo objeto gerado a partir de um código C, podemos utilizar o objdump da seguinte maneira
objdump -d arquivo.obj
No meu caso, dropa o seguinte código ...
-2
votos
1
resposta
96
visitas
Como construir um objeto filho usando o construtor do objeto pai?
Gostaria de saber se existe alguma forma de um objeto filho usar o construtor do objeto pai ao ser construído (sem a necessidade de criar um construtor explícito no objeto filho). Por exemplo:
#...
-1
votos
1
resposta
95
visitas
Quantas linhas uma função "inline" deve ter? em quais casos o "inline" será desconsiderado?
o C++ possuí uma palavra-chave chamada "inline" que serve para alterar a forma em como o compilador realizará a chamada de uma função. Estou ciente que é recomendado que o tamanho dessa ...
5
votos
1
resposta
165
visitas
Qual é a diferença entre "=" e ":=" no Make?
No contexto de atribuíção de variáveis no Make, existem dois operadores que parecem fazer a mesma coisa: = e :=. Existe alguma diferença entre eles?
-2
votos
1
resposta
94
visitas
último espaço de um vetor não está sendo lido em C
escrevi um código em C para contagem de vogais em um input e encontrei um jeito de resolver de certa forma o problema, mas gostaria de saber o pq isso resolveu e o pq do último espaço do vetor (vog[4])...
7
votos
1
resposta
212
visitas
Por que uma atribuição cujo valor usa o operador vírgula nem sempre resulta na expressão mais à direita?
Estou com uma dúvida sobre o operador vírgula em C.
No código abaixo, levando em conta alguns textos que li (1) e (2) e vendo a resposta postada aqui, eu esperava que o valor de c seria 20 (expressão ...
2
votos
1
resposta
245
visitas
É possível passar um array por valor no parâmetro em uma função?
Sabemos que passamos um array como um ponteiro no parâmetro de uma função, portanto não é o valor que é copiado, apenas o ponteiro para o local onde estão os dados. Mas e se eu quiser passar por valor ...
3
votos
2
respostas
143
visitas
Por que o endereçamento do malloc() é diferente da stack?
Porque no malloc() parece ser alocado 16 bits a mais, e na stack a alocação parece ser logicamente correta?
int main(){
#STACK
char str[2] = "A";
char str2[2] = "...
2
votos
1
resposta
145
visitas
O que significa arena?
Usando o termo no contexto de memória de uma aplicação, o que é, qual a função e importância de uma arena? Onde ela fica alocada? Pode usar só em C ou C++?
2
votos
1
resposta
122
visitas
O que acontece se usar "malloc(0)"?
Pode fazer isso em C? Tem alguma utilidade?
3
votos
1
resposta
287
visitas
É possível usar exceção em C?
Mesmo que não seja exatamente como um throw e catch, tem como fazer uso de algo parecido com a exceção em C?
2
votos
2
respostas
341
visitas
É mais rápido usar a função "Pow()" ou fazer multiplicações?
Se eu usar uma função pow() do C ou C++ será sempre mais lento que fazer a multiplicação do valor a quantidade de vezes do expoente?
0
votos
0
respostas
130
visitas
Fazer um programa em c para calcular o valor da raiz de uma função usando método da bisseção porém, variavel esta sempre igual a zero
olá estou querendo fazer um programa em c que calcule a raiz de uma função usando o método da bisseção, porém, a variável que era para ter valor atribuído por quem digitasse, está tendo o valor 0 ...
5
votos
2
respostas
295
visitas
Tem algum problema em usar scanf com ponteiro void?
Fiz uma função que chama scanf(), passando um ponteiro void no segundo argumento:
void read(const char *format, void *p) {
scanf(format, p);
}
Testando com diferentes tipos:
int n;
read("%d&...
12
votos
3
respostas
217
visitas
Faz diferença ordenar os ifs/else ifs pelo mais provável de acontecer?
Se eu fizer
if (muito provável)
//faz algo
else if (alguma probabilidade)
//faz algo
else if (bem pouco provável)
//faz algo
é melhor que colocar em qualquer outra ordem?
Sem olhar a ...
-4
votos
0
respostas
74
visitas
Problema ao chamar função tipo char [fechada]
#include <stdio.h>
#include <stdlib.h>
#include<conio.h>
char categoria(char tipo);
int main(int argc, char *argv[]) {
char str;
printf("Informe a categoria:");
scanf(&...
7
votos
1
resposta
252
visitas
Onde os dados são colocados na memória em C?
Considerando que a memória é dividida em quatro segmentos: dados, heap, pilha e código, onde as variáveis globais, variáveis estáticas, dados constantes, variáveis locais, ponteiros e o espaço alocado ...
-3
votos
1
resposta
84
visitas
Listas ligadas - Adicionar ao final da lista
Boas.
Estou com o seguinte problema, fiz um pequeno programa para testes, onde crio uma lista com os dados de um cliente, nome e número, mas estou com problemas em adicionar ao final da lista. Se ...
-2
votos
2
respostas
212
visitas
Acessar elementos de um array bidimensional através de aritmética de ponteiros
Estou aprendendo sobre aritmética de ponteiros e cheguei em uma parte onde é dito que arrays multidimensionais são armazenados contiguamente na memória, sendo assim possível acessar seus elementos ...
-1
votos
2
respostas
74
visitas
Conversão de string modificada para a original [fechada]
Eu me deparei com uma questão que pede para transformar um texto com caracteres "?" para a forma original, como por exemplo:
"C?m? mu?to b?m h?je" para "Comi muito bem hoje&...
-3
votos
1
resposta
126
visitas
Este programa não funciona. Porém se eu der o scanf da variável ch antes do scanf das variáveis x e y, ele funciona. Alguem saberia me explicar porque
#include <stdio.h>
#include <stdlib.h>
int main()
{
char ch;
int x, y;
printf("Digite o valor de x e y:");
scanf("%d %d", &x, &y);
...
1
voto
0
respostas
51
visitas
verificar e proteger uma thread em c++ [fechada]
Tenho uma duvida sobre thread já vasculhei tudo que pude sobre o assunto e nao encontrei a solução para meu problema!
atualmente criei uma thread simples para limpar memória:
BOOL APIENTRY DllMain(...
-2
votos
1
resposta
369
visitas
Exercício bubble sort em C usando matriz com nomes
Olá, pessoal. Estou realizando um exercício na linguagem C utilizando a estrutura de dados chamada bubble sort.
Basicamente, o exercício pede para eu ordernar essa quantidade de nomes em ordem ...
-1
votos
1
resposta
133
visitas
Como pré-definir valores em struct array em C
Tenho duvidas em como posso atribuir valores a um struct que esteja em array.
A minha ideia era a seguinte:
typedef struct venda {
int refVenda;
int idCliente;
int preco;
int ...
1
voto
1
resposta
1mil
visitas
Dúvida sobre a função strlen()?
Question)
Ler uma string de no máximo 50 caracteres e criar uma nova string com seu inverso,
isso é a ultima letra da primeira string será a primeira na nova string e assim sucessivamente.
Doubt)
Eu ...
1
voto
1
resposta
164
visitas
GCC quais os casos de uso de: -static-libgcc e -export-dynamic?
Trabalho com a linguagem C e uso o compilador GCC, em alguns tutoriais vi o uso de:
-static-libgcc
-export-dynamic
Mas não sei por quê e nem quando usá-los e para que servem?
-3
votos
2
respostas
159
visitas
Escrever um struct em um endereço/ponteiro
Eu aloco memória usando a função VirtualAlloc() e ela retorna um ponteiro ptrAlloc. Eu gostaria criar um objeto nesse endereço, algo parecido com isso:
void* ptrAlloc = VirtualAlloc(0, sizeof strTeste,...
-2
votos
1
resposta
88
visitas
Dúvidas sobre pilha dinâmica - C
(1)Criar um ponteiro do tipo NO dentro da struct NO não implica que dentro desse ponteiro haverá outro ponteiro do tipo NO que terá outro e assim por diante?
typedef struct NO{
int dado;
...
0
votos
0
respostas
55
visitas
Macros de pre compilacao em C
Fiz a seguinte função para um trabalho da faculdade que cria um menu de opções genérico de forma a agilizar o desenvolvimento do trabalho, ela é baseada no funcionamento do printf que recebe ...