Ir ao conteúdo

Poisoned00

Membro Pleno
  • Posts

    24
  • Cadastrado em

  • Última visita

Reputação

16
  1. ja solucionei o problema!
  2. A ideia é bem simples , criar uma agenda pra receber nomes e numeros de pessoas , e guarda-los. porém toda a memória usada tem que ficar em apenas 1 variável , que é um ponteiro void , as demais variáveis podem ser apenas structs , ou ponteiros que guardem APENAS endereços de memória.. meu código consegue inserir , porém ta imprimindo errado . detalhe é que se eu inserir apenas 2 pessoas , ele insere e imprime certo.. mais que isso imprime lixo.. #include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct control{ int ContadorDePessoas; // contador de pessoas no loop int TotalDePessoas; // armazena a quantidade total de pessoas }control; typedef struct user{ char Nome[20]; // nome da pessoa int Num; // numero da pessoa control controle; }user; user *ptrUser;//ptrUser//usuarioAtual user *aux;//aux//primeiroUsuario void *pbuffer; // essa função funciona void imprimirUm(user *ptrUser){ printf("\nNome: %s",ptrUser->Nome); printf("\nNumero: %d",ptrUser->Num); ptrUser++; } // essa função imprime valores errados ou trocados void imprimirTodos(){ user *ptrAtual; ptrAtual = aux; for(aux->controle.ContadorDePessoas = 0 ; aux->controle.ContadorDePessoas < aux->controle.TotalDePessoas ; aux->controle.ContadorDePessoas++,ptrAtual++ ){ printf("\nNome: %s",ptrAtual->Nome); printf("\nNumero: %d",ptrAtual->Num); } } void inserir(user *ptrUser){ ptrUser->controle.TotalDePessoas++; if(ptrUser->controle.TotalDePessoas > 1){ ptrUser = realloc(ptrUser,(aux->controle.TotalDePessoas * sizeof(user))); aux = ptrUser; for (aux->controle.ContadorDePessoas = 0; aux->controle.ContadorDePessoas < ptrUser->controle.TotalDePessoas; aux->controle.ContadorDePessoas++){ ptrUser++; } }else{ aux = ptrUser; } printf("Nome:"); scanf("%[^\n]",ptrUser->Nome); printf("Numero:"); scanf("%d",&ptrUser->Num); //Essa função funciona certinho para cada usuario. //imprimirUm(ptrUser); ptrUser++; } int main(int argc, char const *argv[]) { pbuffer = malloc(sizeof(user)); if(pbuffer == NULL){ return -1; } ptrUser = pbuffer ; ptrUser->controle.TotalDePessoas = 0 ; for (int i = 0; i < 3; i++){ inserir(ptrUser); getchar(); } imprimirTodos(); return 0; } help!
  3. Exato !
  4. Esse é o exemplo que me foi enviado.. Eu teria que criar algo parecido.. me parece bem simples na real , e também é pra estagiar , eu imagino que o cara que vai me contratar tenha noção de que eu sou novato.. adicionado 6 minutos depois então eu poderia fazer em Java , mas a vaga é pra usar react + redux , dai não da pra correr disso...
  5. Dale galera! Recentemente eu recebi uma proposta de estágio pra front-end , utilizando react native + Redux , bem massa a proposta , estou fazendo ciência da computação mas iria se encaixar no meu horário. A dúvida é o seguinte ... eu preciso criar um app o qual o usuário irá desenhar caixas de texto na tela.. porém eu ainda não tenho conhecimento em React native , e precisaria estudar e tal , dai eu já até pensei em fazer um curso na udemy.. Mas eu preciso responder em quanto tempo eu demoraria pra fazer esse app.. O que vocês acham ? 2 semanas seria um tempo bom pra aprender essa nova linguagem e fazer o app ? Eu acho que o app é até bem simples... eu tenho conhecimento em C e Java , um pouco de html , css , e C++. , então não iria iniciar do " Completo Zero " kkkkk. O que vocês acham ? me deem sugestões please!
  6. Dale galera , to com um problema aqui meio cabeludo.. O exercício é o seguinte.. criar um ponteiro void que vai armazenar quantidade x de usuários , nome e idade.. Porém minha dúvida é o seguinte.. como eu vou utilizar o ponteiro void e fazer ele armazenar as informações corretamente ? Eu tentei fazer ele armazenar os valores de forma adjacente , porém depois desse teste : void Buffer(){ void *pBuffer; printf("\n%d",pBuffer); pBuffer = malloc(sizeof(int)); printf("\nmalloc-int>%d",pBuffer); pBuffer += sizeof(int); printf("\npulo-4>%d",pBuffer); pBuffer = malloc(20*sizeof(char)); printf("\nmalloc-char>%d",pBuffer); pBuffer += 20*sizeof(char); printf("\npulo-20>%d",pBuffer); pBuffer = malloc(sizeof(int)); printf("\nmalloc-int>%d",pBuffer); } eu percebi que ele não armazena de forma adjacente.. ou seja as posições de memória que saem no escape %d não são adjacentes ... então eu não conseguiria acessar os valores seguindo essa lógica.. Não tenho ideia de como fazer isso agora.. :/
  7. Dale galera, a um tempinho eu conheci um algorítimo de ordenação, e recentemente estou aprofundando os estudos sobre algorítimos de ordenação. Gostaria de descobrir o nome desse algorítimo... Eu pensava que era bubble sort , mas dai hoje descobri que na real o bubble é beeeem diferente.. Se alguém souber me diga pls. #include <stdio.h> int main(int argc, char const *argv[]) { int lista[10]={2,3,4,45,56,32,1,24,2,1}; int aux; printf("antes:"); for (int i = 0; i < 10; ++i) { printf("%d ",lista[i]); } printf("\nDepois:"); for (int i = 0; i < 10; ++i) { for (int j = 0; j < 10; ++j) { if(lista[i]<lista[j]){ aux = lista[i]; lista[i]=lista[j]; lista[j]=aux; } } } for (int i = 0; i < 10; ++i) { printf("%d ",lista[i]); } return 0; }
  8. Cara valeu pela força ! eu achei massa tu ter falado sobre o trabalho com JAVA , a minha intenção é trabalhar como programador nessa linguagem depois da faculdade. E eu sempre fico me perguntando em como é o dia a dia nessa linguagem , e como são os trabalhos desenvolvidos , ou o que tem mais se desenvolvido com java no mercado de trabalho por ai.. Queria ter uma direção pra o que estudar sobre java , no meu curso a gente estuda a linguagem em uma disciplina de programação orientada a objetos , mas acho que depois é só C ou python , ah e VDHL na parte de eletrônica..
  9. nossa eu sou muito burro ! OIJAWEOIJAWIOE eu sabia que matriz usava ponteiros de ponteiros , mas eu não liguei ao fato de que vetores de strings acabam sendo eram matrizes também ! Cara obrigadão ! vai me ajudar muito , eu to fazendo uma disciplina na faculdade de BCC chamada algoritimos e estrutura de dados e to vendo ponteiros pra tudo quanto é lado kkkkk Ok , uma pergunta : no trecho em que você faz a alocação dinâmica , primeiro , você não utiliza typecasting ( em nenhuma das duas alocações ) . Eu aprendi que pra fazer uma alocação a função malloc considera todos as variáveis como ponteiros do tipo void , então é necessário fazer o typecasting , é correto isso ?é realmente necessário ? eu já vi diversos códigos que não o fazem.. Exemplo o meu código ta com typecasting na frente : (char*)malloc(20*sizeof(char*)) no inicio da alocação eu informo que o ponteiro é do tipo (char*). o seu não : malloc(5 * sizeof(char *)) . outra pergunta : no primeiro você usou sizeof(char*) , no segundo usou sizeof(char). A pergunta é : é um ponteiro de ponteiros ( char**) , portanto , no caso eu não deveria alocar espaços de memórias primeiramente para ponteiro de ponteiros ? tipo sizeof(char**) e em seguida alocar memória para o ponteiro sizeof(char*) ? essa dúvida vem do fato de que já que vamos alocar memória para essa variável , e a variável é x , então ao meu ver deveria ser alocada memória para o espaço x . entende ? desculpa pela bíblia , mas eu to bem enrolado com estrutura de dados.. kkkkkk
  10. Eai galera , estou implementando uma vetor de string simples , a ideia é apenas inserir nomes , e após inserir os nomes imprimi-los. Porém só posso usar ponteiros. Estou tendo uma certa dificuldade com isso .. e até o momento consegui fazer o código inserir 1 nome, quando ele vai pro próximo nome da APPCRASH , o windows força o encerramento da aplicação.. Help please. #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char const *argv[]) { char *usuarios[20]; char *aux; int *i; aux = (char*)malloc(20*sizeof(char*)); i = (int*)malloc(sizeof(int*)); *i = 0; for(;;){ printf("Entre com um nome:"); fgets(aux,20,stdin); usuarios[*i] = malloc ((strlen(aux))*sizeof(char)); strcpy(usuarios[*i],aux); if((strcmp(usuarios[*i],"\n"))==0){ break; } printf("Adcionado > %sNa pos > %d\n",usuarios[*i],*i); i++; } return 0; }
  11. bah que massa não sabia da existência dessa função strtok , agora funcionou 100% muito obrigado pela ajuda!
  12. #include <stdio.h> #include <string.h> #define MAX 100 #define MIN 0 #define START 1 int main(int argc, char **argv) { char *ptr,emot[MAX][20],text[MAX][80]; int n,m,cont; int len; cont = MIN ; n=m=START; fflush(NULL); while(n != MIN && m != MIN) { scanf("%d",&n); scanf("%d",&m); fflush(NULL); for (int i = 0; i <= n; i++) { fgets(emot[i],MAX,stdin); } for (int k = 0; k < m; k++) { fgets(text[k],MAX,stdin); for (int j = 1; j <=n; j++) { ptr = strstr(text[k+1],emot[j]); // seria aqui onde adciono ? if(ptr!=NULL) { cont ++; } } } printf("%d\n",cont); cont=0; } return 0; }
  13. bah mano não funcionou :/ deu Crash quando vou começar a passar os textos..
  14. Olá galera! Estou tendo um dificuldades pra solucionar esse problema.. a ideia principal do código é receber n números de emoticons e m textos , e então procurar os emoticons nos textos e contar quantas vezes eles aparecem.. o código está funcional pro caso do usuário que entrar apenas 1 emoticon por texto.. logo , se entrar 2 ou mais , ele irá contar como apenas 1.. Estou tendo dificuldade com isso , por envolver "vetor de string" , alguém pode me ajudar ? #include <stdio.h> #include <string.h> #define MAX 100 #define MIN 0 #define START 1 int main(int argc, char **argv) { char *ptr,emot[MAX][20],text[MAX][80]; int n,m,cont; int len; cont = MIN ; n=m=START; fflush(NULL); while(n != MIN && m != MIN) // esse loop é apenas para que 0 seja o critério de parada { scanf("%d",&n); scanf("%d",&m); fflush(NULL); for (int i = 0; i <= n; i++) { fgets(emot[i],MAX,stdin); } for (int k = 0; k < m; k++) { fgets(text[k],MAX,stdin); for (int j = 1; j <=n; j++) { ptr = strstr(text[k],emot[j]); /* a minha ideia de solucionar começa aqui , utilizei a função * strstr que direciona o ponteiro para a primeira posição a * qual foi encontrada a substring dentro da string * porém ele procura apenas 1 vez portanto , se tiver mais * emoticons dentro da string , ele não irá encontrar.. */ if(ptr!=NULL) { cont ++; } } } printf("%d\n",cont); cont=0; } return 0; }

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

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!