Jump to content

Search the Community

Showing results for tags 'malloc'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 5 results

  1. Peguei esse codigo da internet, e estou tentando modificar ele para ficar do jeito que preciso, peguei ele sem funcao e preciso de funcao para cada acao e apos criar a funcao de cadastro apenas para teste nao salva a variavel no arquivo binario. #include <stdio.h> #include <stdlib.h> #include <string.h> struct Contato{ char nome[100]; int telefone; }; struct Contato *agenda; FILE *fp; int cadastra(int n, int cap){ fp = fopen("xxx.dat","a+b"); if(n == cap){ cap *= 2; agenda = realloc(agenda, sizeof(struct Contato)*cap); } printf("Digite o nome: "); scanf(" %[^\n]", agenda[n].nome); printf("Digite o telefone: "); scanf("%d", &agenda[n].telefone); fwrite(agenda, sizeof(struct Contato), n, fp); fclose(fp); return n++; } int main(){ int cap; int n; int opc; int i; struct Contato *agenda; FILE *fp; fp = fopen("xxx.dat","rb"); printf("N; %d \n", n); if(fp==NULL){ n = 0; cap = 20; agenda = (struct Contato *)malloc(sizeof(struct Contato)*cap); } else{ fread(&n, sizeof(int), 1, fp); cap = n*2; agenda = (struct Contato *)malloc(sizeof(struct Contato)*cap); fread(agenda, sizeof(struct Contato), n, fp); fclose(fp); } do{ printf("*** Menu ***\n"); printf("1) Cadastrar contato.\n"); printf("2) Exibir contatos.\n"); printf("3) Apagar.\n"); printf("4) Sair.\n"); scanf("%d",&opc); switch(opc){ case 1: printf("n %d\n", n); n = cadastra(n, cap); printf("n %d\n", n); break; } if(opc==2){ for(i=1; i<4; i++){ printf("*** Contato %d ***\n",i+1); printf("Nome: %s\n",agenda.nome); printf("Telefone: %d\n",agenda.telefone); } printf("N; %d \n", n); } else if(opc==3){ char nome[100]; int j; scanf("%s",&nome); for(i=0; i<n; i++){ if (strcmp(agenda.nome, nome)==0){ for(j=i+1; j<n; j++){ strcpy(agenda[j-1].nome,agenda[j].nome); agenda[j-1].telefone=agenda[j].telefone; } n--; i=n; } } } }while(opc!=4); if(n>0){ fp = fopen("xxx.dat","wb"); fwrite(&n, sizeof(int), 1, fp); fwrite(agenda, sizeof(struct Contato), n, fp); fclose(fp); } free(agenda); return 0; }
  2. Salve! Estou tentando escrever em uma string (ponteiro alocado dinamicamente) através de uma função alimentada por um ponteiro Codigo de exemplo: #include <stdio.h> #include <stdlib.h> #include <string.h> void teste (char *str) { str = (char*)malloc(sizeof(char)*(strlen("teste"))); strcpy(str, "teste"); printf("%s", str); } int main() { char *str1 = NULL; teste(str1); printf("|%s", str1); return 0; } A intenção é que a saída seja algo do tipo: teste|teste porém o resultado é: teste|(null) Acredito que por estar enviando como referência o str1 ele deveria ser alterado pela função, e portanto permanecer como o mesmo valor de str (que aponta para ele), porém isso não acontece. Como deveria proceder para conseguir o resultado desejado? Agradeço!
  3. #include <iostream> #include <cstdlib> using namespace std; struct Page { int a; Page* b; }; int main(int argc, char *argv[]) { int size = 5; Page* p = (Page*) malloc(sizeof(Page)); p->a = 5; p->b = (Page*) malloc(sizeof(Page) * size); for (int i = 0; i < size; i++) { p->b[i] = NULL; } cout << p->b[3] << endl; return 0; } A ideia era criar uma página onde dentro teríamos um array de páginas inicialmente nulas. Mas por algum motivo eu não estou conseguindo criar o array interno. Pois quando tento instanciar o valor nulo para as células do array, o compilador informa que não é um array e não pode acessar. Antes de qualquer coisa, realmente necessito que seja uma alocação dinâmica. Grato desde já pela ajuda...
  4. Boa tarde, Este é meu primeiro tópico aqui no fórum, estou iniciando os estudos em Árvore Binária de Pesquisa (Busca) e estou com dificuldades na inserção e impressão dos números (chaves) na tela depois de inseridos os números. -- Alguma sugestão? é a declaração da RAIZ? é a função de inserção? Na verdade não aparece nada quando chamo as funções de impressão, eu já "testei" a RAIZ antes de chamar a função de impressão e ela está "zerada" -- Segue o código abaixo, se alguém tiver um "caminho" para eu seguir eu agradeço! -- #include <stdio.h> #include <stdlib.h> typedef struct arvore{ int valor; struct arvore *dir, *esq; } arvore; void insere(arvore *raiz, int valor){ if (raiz == NULL){ arvore *aux; aux = malloc (sizeof (arvore)); aux->valor = valor; aux->dir = NULL; aux->esq = NULL; raiz = aux; } else if (valor > raiz->valor) insere (raiz->dir, valor); else if (valor < raiz->valor) insere (raiz->esq, valor); else printf ("Elemento ja existe na arvore\n"); } void em_ordem(arvore *raiz){ // esquerda / raiz / direita if (raiz != NULL){ em_ordem(raiz->esq); printf("%d ", raiz->valor); em_ordem(raiz->dir); } } void pre_ordem(arvore *raiz){ // raiz / esquerda / direita if (raiz != NULL){ printf("%d ", raiz->valor); pre_ordem(raiz->esq); pre_ordem(raiz->dir); } } void pos_ordem(arvore *raiz){ // esquerda / direita / raiz if (raiz != NULL){ pos_ordem(raiz->esq); pos_ordem(raiz->dir); printf("%d ", raiz->valor); } } void main(){ arvore *raiz; raiz = NULL; insere(raiz, 10); insere(raiz, 8); insere(raiz, 12); insere(raiz, 5); insere(raiz, 11); printf("\n>> IMPRESSAO\n====================================================="); printf("\n---------------------------------------\n EM ORDEM: "); em_ordem(raiz); printf("\n---------------------------------------\n PRE ORDEM: "); pre_ordem(raiz); printf("\n---------------------------------------\n POS ORDEM: "); pos_ordem(raiz); printf("\n---------------------------------------\n"); }
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.