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;
}
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Instalar o Microsoft Edge no Slackware 15
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
warsaw parou de funcionar após atualização do sistema (solução) (0)
Formatando cartão de memoria que nao formata[AJUDA] (13)
Desde que seja DDR3, posso colocar qualquer memória? [RESOLVIDO] (6)
crontab executar em tempos (1)
Programa duplicado no "Abrir com" e na barra de pesquisa do ... (3)