Enviado em 24/11/2014 - 02:48h
Tenho o seguinte trecho de código e minha dúvida é se estou fazendo corretamente a alocação e como posso verificar o tamanho de *nome, se ele realmente tem o tamanho do nome. O sizeof sempre retorna 8 bytes, acho que deve ser o tamanho de um ponteiro, mas o que eu quero saber é o tamanho do lugar para o qual ele aponta, no caso nome.
#include stdio.h
#include stdlib.h
#include string.h
typedef struct CADASTRO {
char *nome;
}cadastro;
cadastro aluno;
int main(void) {
char nome[100];
int num;
printf("Digite seu nome: ");
fgets(nome,100,stdin);
num = strlen(nome) + 1;
printf("%i caracteres\n", num);
aluno.nome = (char *) malloc(num*sizeof(char));
strcpy(aluno.nome, nome);
printf("%s", aluno.nome);
free(aluno.nome);
return 0;
}
Vou voltar moderar conteúdos de Dicas e Artigos (0)
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Instalação Uefi com o instalador clássico do Mageia (1)
Vou voltar moderar conteúdos de Dicas e Artigos (0)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta