The UNIX and Linux Forums  

Go Back   O UNIX e Linux Forum > Top Fóruns > UNIX & avançada para usuários experientes
.
google unix.com



UNIX & avançada para usuários experientes Especialista-a-Expert. Saiba avançado UNIX, comandos UNIX, Linux, Sistemas Operativos, Administração de Sistemas, Programação, Shell, shell scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
perguntas em memset arunkumar_mca UNIX para Dummies Perguntas & Respostas 7 08-09-2007 01:08
sobre memset fuction ranj @ CHN Alto Nível de programação 3 01-31-2006 08:59

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 07-16-2008
Salvi salvi is offline
Usuário
  
 

Join Date: Jul 2008
Posts: 7
memset vs calloc

Caros Amigos,
Pode qualquer um dizer-me a diferença entre memset calloc e função em C.

Atenciosamente,
Selvi
  #2 (permalink)  
Old 07-16-2008
zaxxon's Avatar
zaxxon zaxxon is offline Forum Staff  
Moderador
  
 

Join Date: Sep 2007
Local: Alemanha
Posts: 2.285
Uh oh ... melhor ser movida / postada em alto nível de programação subforum próxima porta Acho (se não houver resposta vem).
  #3 (permalink)  
Old 07-16-2008
shamrock shamrock is offline Forum Advisor  
Usuário
  
 

Join Date: Oct 2007
Localização: E.U.A.
Lugares: 753
memset () inicializa byte cordas para um usuário fornecido valor que está restrita ao unsigned char intervalo. Ela não atribuir qualquer memória.

calloc () aloca memória de qualquer tipo (char, int, struct) e inicializa o armazenamento de zeros.

Tanto inicializar uma determinada área de armazenamento [memset () é a mais exclusiva das duas funções], mas apenas uma aloca memória para o armazenamento de um determinado tipo de objeto.
  #4 (permalink)  
Old 07-16-2008
osulinux osulinux is offline
Usuário
  
 

Join Date: Jun 2008
Lugares: 31
calloc () é normalmente usado para criar matrizes. É como o tipo de malloc () em que ela aloca memória, mas calloc (), como estabelece o shamrock recorda memória alocada para 0.

O efeito da calloc () é o mesmo que fazer malloc (), seguido pelo memset ().
  #5 (permalink)  
Old 07-17-2008
Salvi salvi is offline
Usuário
  
 

Join Date: Jul 2008
Posts: 7
Caros Amigos,
Obrigado pela sua resposta.
Na verdade quando eu estava lendo o código do traceroute eu vi a seguinte declaração.

outip \u003d (struct ip *) malloc ((unsigned) packlen);
if (outip \u003d\u003d NULL) (
Fprintf (stderr, "% s: malloc:% s \ n", prog, strerror (errno));
exit (1);
)
memset ((char *) outip, 0, packlen);

outip é de datatype struct ip *.
packlen é o tamanho do pacote (ou seja, 40 bytes).


Minha dúvida é por isso que aqui eles não usam o calloc função.

Atenciosamente,
Selvi.
  #6 (permalink)  
Old 07-17-2008
jim McNAMARA jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Localização: NM
Mensagens: 5.769
Isso é mais velho código C (porque não malloc moderna e deverão ser expressos).

I'm guessing:
Algumas implementações mais velhos calloc truncatura realmente tinha problemas com a memória alocada. Então, talvez o codificador sabia que isto era um problema.

Plus, calloc faz uma chamada equivalente memset de qualquer maneira - por isso é até você para escolher um que usar: + memset malloc ou calloc. Eu pessoalmente raramente utilizam calloc.
  #7 (permalink)  
Old 07-17-2008
osulinux osulinux is offline
Usuário
  
 

Join Date: Jun 2008
Lugares: 31
A razão é que calloc () implica array acesso. Eles não estão tratando a área de memória como um array aqui para usar malloc (). calloc () é raramente utilizada, parece-me, e, neste caso, não faria qualquer sentido usar. Pense nisso, o que você faça uma série de, neste caso, que tipo?
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 06:03.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0