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;
}
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Instalação não está resolvendo as dependencias (0)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (5)
Captação de áudio no zorin linux começa a diminuir com o tempo (5)
Alternativas ao Multilogin para gerenciamento de múltiplas contas/prof... (0)