-
Posts
1.752 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por vangodp
-
-
se tiver algum problema avise
- 1
-
-
7 horas atrás, oromotoceu disse:
bom dia pode me ajudar nessa questão por favor
Claro... Qual sua duvida? Ja tem algo feito...? Posta ai o que levar feito.
Em um principio n tem nada demais, é só carregar tudo na memória desde o tal arquivo, fazer as operações e quando sair do programa sobrescrever tudo no arquivo.- 1
-
Em 13/10/2021 às 23:28, arfneto disse:
Pode usar char* Filme ou char** Filme apenas.
é... mas si a coisa escalar você vai desejar ter usado structs e arrays de structs XDD
- 1
-
então...
struct{
char nome[100];
char diretor[x][100];
};logo um array.
mas si diz que n sabe sobre arrays de structs melhor esquecer mesmo
- 1
- 1
-
o modo mais fácil é carregar tudo na memória em um vetor de structs, organizar e escrever tudo no arquivo. mas cada professor é um mundo.
- 1
-
você ja aprendeu sobre structs?
- 1
-
16 minutos atrás, Plástico Bolha disse:
Implementei o A* com JS, pelo menos a lógica dá pra ser reutilizada.
agora no C
-
você também pode usar o algoritmo A*(A Estrela)
- 1
- 1
-
Em 09/09/2021 às 07:18, Benjamin Breeg disse:
Na SFML e acredito que outras bibliotecas você pode criar geometria de triângulos de forma mais simples,
exatamente.. por muito que programe em 2d internamente sao triangulos e texturas
- 1
-
3 horas atrás, cleitonwski disse:
tem como tu me enviar o codigo completo dessa atividade que tu fez ai ?
E se em vez disso você n tenta fazer... vai que fica melhor.
- 2
-
Na verdade para tema de jogos o mais provável é que você n encontre um post 100% adaptado ao seu problema, vai precisar ir pegando peças com pinça e ir adaptando a seu problema. Se alguém daqui souber fazer isso certamente será porque trabalha com isso.
-
tem que ter vários tutoriais pela net. Uma "googleada" rápida e saiu isso -> https://www.cs.bham.ac.uk/~jxb/e aí/w9g.pdf
busca algo como "chess IA algoritm in C" en github, ou algum tutorial em pdf etc.
- 1
-
#include <stdio.h> #include <string.h> int main(){ static int op = 0; printf("1 continuar \n2 sair"); scanf("%d", &op); switch(op){ case 1: main(); break; case 2: return 1; } return 0; }
- 2
- 1
-
46 minutos atrás, Midori disse:
strlen com sizeof.
acho que sim XD
mas como ja n me deixa retificar depois do seu comentário vai ficar assim mesmo hehe
-
não da certo usar strlen depois de passar uma string por "parâmetro" quando em realidade o que o programa passa é um ponteiro de forma não transparente ao usuário. Me explico...
Quando você passar uma string assim:
#include <stdio.h> void foo( char str[100] ) { printf("foo->%s\n", str); } int main(){ char frase[100] = {"Ola mundo!"}; printf("main->%s\n", frase); foo(frase); return 0; }
Você deve estar achando que é passado uma "copia" de frase que esta em main para a str que esta em foo, mas de fato não é assim, o que esta acontecendo é que você esta passando um ponteiro e por isso strlen n vai funcionar, não vai funcionar porque strlen precisa da string e não de um ponteiro a string.
Para verificar si o que digo é verdade basta com imprimir as direções de memória da primeira casinha da string desta forma tanto em main quanto na função...:
#include <stdio.h> void foo( char str[100] ) { printf("foo->%s\n", str); printf("foo->%p\n", &str[0]); } int main(){ char frase[100] = {"Ola mundo!"}; printf("main->%s\n", frase); printf("main->%p\n", &frase[0]); foo(frase); return 0; }
Você vai poder conferir que as direções são as mesmas, o que isso indica que o que foi passado não é uma copia e sim um ponteiro. Ou seja... não foram passados todos os bytes e sim a direção onde começa a string em main. Por que acontece isso? Em C passar copias tem um custe, esse custe é tempo e espaço em ram, não é o mesmo passar um ponteiro que uma "tripa" de bytes por dar um exemplo, que em alguns casos pode chegar a ser bem grandinha XDD. Solução? Passar a direção... e isso é o que o compilador faz, assumindo que isso você é consciente disso, porém si ignorar isso vai dar erros.
O que acontece é que de forma não transparente o que é passado é um ponteiro e essa é a causa de seu programa n funcionar quando você chama strlen dentro da função, porque passar copias são custosas tanto em tempo como em memoria.
O que pode ser feito é realizar todo o processo de forma manual, contando byte a byte até chegar no \0 que indica o fim da string, ou algo como isso:
#include <stdio.h> #include <string.h> void foo( char str[100] ) { char aux[100]; strcpy(aux, str); printf("%lld", strlen(aux)); } int main(){ char frase[100] = {"Ola mundo!"}; printf("main->%s\n", frase); foo(frase); return 0; }
Neste caso é reservado uma copia local dentro da função foo e então sim ja funciona, porém com tudo isso anulamos o mecanismo que faz com que seu programa seja eficiente já que todo o tempo será feito copias, e dependendo do tamanho da string seu programa será menos eficiente. Menos eficiente porque vai levar mais tempo em realizar essas copias, e seu programa usará mais RAM do que o necessário para funcionar.
você também pode passar o tamanho pelos parâmetros dentro do main, mas ai deixo a seu critério. -
6 horas atrás, JorgeGus disse:
Tente usar:
getchar();
O system("pause") é na verdade uma chamada ao sistema operacional onde o comando pause é executado, então só vai funcionar no Windows ou no antigo DOS, no Linux e outros sistemas operacionais o pause não será reconhecido ou pode ser reconhecido errado.
Com o getchar será necessário pressionar Enter.
O getchar pode não funcionar si tiver caracteres indesejados no bufer(n vou falar lixo si não arfneto fica nervoso XDD) . veja o seguinte exemplo:
#include <stdio.h> int main() { int n; printf("Entre com um numero: "); scanf("%d", &n); getchar(); return 0; }
Por outro lado se tiver o bufer vazio e bem controlado o getchar pode sim servir para pausar:
#include <stdio.h> int main() { int n; printf("Entre com um numero: "); scanf("%d%*c", &n); getchar(); return 0; }
- 2
- 1
-
-
Ola.
Qual problema você tem?- 1
-
12 minutos atrás, Higor Allan disse:
comecei a pouco tempo, não sei qual plataforma e melhor que outras kk, eu vi alguns videos de que a pessoa antes de colocar o codigo ja aparecia algumas opções pra digitar... achei ***** isso, mas não sei como botar, qual plataforma voce me recomendaria?@vangodp
Isso no codeblocks se chama abbreviations.
Tipo eu criei uma abreviação chamada "c", passo seguinte é pulsar ctrl + j e automaticamente o codeblocks inseri tudo isso que você ve no quadro preto. Tenho abreviaçoes para muitas coisas como você pode ver na lista, algumas vem com o codeblocks e outras eu criei. Sei que devc++ tem algo parecido mas acho o do codeblocks mais versatil. Praticamente todos os programas tem isso entre outras coisas.
Se quiser umas dicas sobre codeblocks e o sfml entra ai-> https://discord.gg/j4Mnffk- 2
-
vixi... n sei nada de makefiles. E pior é que n entendo como ainda tem gente usando devc++. Se quiser um projeto para codeblocks é só dizer.
- 1
-
2 horas atrás, André Rafael disse:
extern int errno;
Para que serve essa linha? errno basicamente é um arquivo cheio de defines e nele não há nenhum int errno declarado como int.
E você ainda nem chama perror para fazer comprovações para saber se abriu ou n os arquivos.
- 1
-
Tambem não se trata só de diferentes funções para a mesma coisa, você também pode pegar dados de scaners, teclados, arquivos, streams e por aí vai. O que você se refere é pegar o imput desde o teclado, para isso ja tem as respostas dos outros companheiros.
Sorte- 3
-
Podia dar mais informação tipo ide que usa etc. Acredito que seja também o tipo de projeto errado.
Tem um montão de variáveis não declaradas que são usadas... isso é tão fácil como ir seguindo os erros que vai soltando o compilador para ir solucionando.arrume esses erros e volte.
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais
Destruir uma struct, é possível?
em C/C#/C++
Postado
se vetor for um objeto reservado dinamicamente você sim pode liberar, caso contrario n. Para ficar mais claro você poderia passar o enunciado completo.