C consultas

S

soniya_ahuja

Guest
Consultas em CPode alguém por favor me diga quais são as vantagens e desvantagens de macros?Gostaria também de mentir para saber a principal diferença entre malloc e calloc.

Mais uma pergunta --

Você pode definir uma função que pode ter parâmetros como inputs indefinido?

Obrigado
Atenciosamente
Soniya

 
Agora eu posso te responder a última pergunta.
Podemos definir uma função que tem parâmetros indefinidos como entrada.
para esse problema, podemos utilizar as macros stdarg que definiu no arquivo de cabeça stdarg.h.esse arquivo de cabeça, definiu um tipo va_list e 3 macros - va_start, va_arg, va_end.podemos declarar uma varibale va_list do tipo, e com as três macros para acessar os parâmetros.

/ *
** Calcule a média do número especificado de valores.
* /

# include <stdarg.h>

float
(média n_values int, ...)
(
var_arg va_list;
int count;
float sum = 0;

/ *
** Prepare-se para acessar os argumentos variável.
* /
va_start (var_arg, n_values);

/ *
** Adicione os valores da lista de argumentos variável.
* /
for (count = 0; count <n_values; count = 1) (
soma = va_arg (var_arg, int);
)

/ *
** Feito processamento de argumentos variável.
* /
var_arg (ap);

return soma / n_values;
)tudo isso você pode consultar a <pointers em c> por Kenneth A. Reek capítulo 7,6.

(perdoe meu pobre Inglês)

 
malloc aloca um bloco de tamanho especificado da memória.Um programa é claramente alocar memória como o que é preciso por ele.

Em sucesso malloc retorna um ponteiro para o bloco de memória recém-alocado

Calloc é semelhante ao malloc e leva n_items mais um argumento que é multiplicado pelo size_t segundo argumento que é o tamanho para alocar e atribui um bloco de n_items tamanho * tamanho.

Também inicializa todas as posições a 0 que não é feito por malloc.

Nota: calloc podem ser utilizados para a atribuição de tamanho até 64 k, para além da atribuição de 64K, você tem que usar farcalloc.

 

Welcome to EDABoard.com

Sponsor

Back
Top