1 – 11 de 11
Anônimo Anônimo disse...

na parte: void *malloc(size_t numero_de_bytes); porque tem o esterisco em "malloc"? é um ponteiro?

30 de dezembro de 2013 às 14:39

Anônimo Anônimo disse...

parabéns,,,bem explicado,pois não só joga o assunto para vc estudar..tem também o motivo e o porque de usar tal função...obs: eu sou o dois anônimos de cima)

30 de dezembro de 2013 às 14:46

Blogger Unknown disse...

Respondendo a pergunta do amigo. o austerístico se deve ao fato de a função malloc() retorna um ponteiro, isto é, o endereço de memória do primeiro elemento alocado. Nos protótipos de funções, quando aparecer o "*" ante de qualquer elemento, significa que ele é um ponteiro ou retorna um endereço.

19 de fevereiro de 2014 às 09:05

Blogger Kissaba disse...

Olá, só uma dúvida, na parte que fala sobre o caso de alocarmos uma string com 20 caracteres tem o trecho de código.

printf("%sn", nome);

essse SN existe? ou só seria printf("%s", nome); ???

19 de dezembro de 2015 às 05:09

Anônimo Anônimo disse...

Não faz sentido! veja bem, entendi que a principal ideia do uso malloc ou calloc, seria a de liberar uma memoria "expansiva" correto?, como no caso do cadastro de um nome completo, como não temos como saber a quantidade de caracteres, nós criamos o malloc, dessa forma, o campo ira se ajustar ao tamanho exato digitado pelo usuário, correto?

Mas em todo vídeo que vejo, o professor insere a quantidade de bytes, mas pq isso? se vc insere a quantidade de bytes, vc esta prevendo a quantidade de caracteres, fugindo de toda lógica do malloc.

Todo vídeo, se usa a seguinte sintaxe: char *nome_do_cliente = (char *) malloc(10*sizeof(char));

Mas veja bem, se eu coloco 10* ali, eu estou presumindo o tamanho! não faz sentido! o correto não deveria ser: char *nome_do_cliente = (char *) malloc(sizeof(nome_do_cliente));

de forma que ele pegue o tamanho alocado no nome_do_cliente, ao passo que o campo é preenchido?

Não estou conseguindo entender isso, eu entendi a sintaxe, e tudo, menos a finalidade, pois como dito, todo exemplo que vejo, presumi o tamanho do campo! Alguém pode me ajudar?

29 de agosto de 2016 às 07:41

Blogger Unknown disse...

Kissaba.. testei aki o printf("%sn", nome);
e so com o S pegou, acho q é S de string o n é so uma letra normal, até por que quando imprimimos na tela exemplo o nome Ruan fica com o n no final tipo: Ruann

portanto acho que é so o S mesmo, do %s..

1 de setembro de 2016 às 09:04

Blogger tamy disse...

olha, eu acho que esse %sn era pra ser printf("%s\n",nome);

4 de setembro de 2016 às 13:05

Anônimo Anônimo disse...

eu acho que o numero ali que ja sao inseridos ...diz respeito ao maximo de caracterres que pode ser alocado ... mas caso o usuario digite um valor menor de caracteres o sizeoff ira diminuir o tamanho da memoria...acho que e isso ...

4 de fevereiro de 2017 às 15:46

Blogger Unknown disse...

o n na verdade era apenas para quebrar a linha.. o amigo esqueceu apenas de colocar \n

20 de maio de 2018 às 06:58

Anônimo isrnick disse...

Não se usa casting como (char *) no retorno do malloc, isso não é necessário e causa erros:

O modo correto é:

char *nome;
nome = malloc(21 * sizeof *nome);

Fonte:
https://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc



Também seria bom não usar funções descontinuadas da linguagem num material didático introdutório como a função gets(), que foi retirada do padrão da linguagem por ser uma função não segura.

Use outras funções como fgets() ou scanf() para que o aluno pegue boas práticas de programação.

29 de maio de 2018 às 21:24

Anônimo Anônimo disse...

"Não estou conseguindo entender isso, eu entendi a sintaxe, e tudo, menos a finalidade, pois como dito, todo exemplo que vejo, presumi o tamanho do campo! Alguém pode me ajudar?" Não está fugindo a lógica do malloc, esta é a logica do malloc. Malloc nesse caso cria um vetor. Ex.: quando usamos int p[3], estamos fazendo um int* p = (p*) malloc(3*sizeof(int)); sobre esse tipo de alocação que deseja pesquisa ""Alocação Dinãmica""..

14 de março de 2019 às 17:24

É quase impossível criar centenas de páginas voltadas para programação C e não cometer algum erro.

- Se notar algum conceito, letra ou trecho de código errado, deixe sua correção

- Se perceber uma maneira melhor ou mais eficiente de fazer algo, deixe sua ideia

- Se algo não ficar claro ou for confuso, nos avise

Aos poucos vamos aumentando e melhorando a qualidade de nosso material, e para isso contamos com sua ajuda.
Você pode usar algumas tags HTML, como <b>, <i>, <a>

A moderação de comentários foi ativada. Todos os comentários devem ser aprovados pelo autor do blog.

Depois de enviar seu comentário, será necessário fazer login.
Prove que você não é um robô