ajuda sobre o tipo de dado "size_t"

1. ajuda sobre o tipo de dado "size_t"

Maycon Victorino
mayconv7

(usa Outra)

Enviado em 25/11/2021 - 09:35h


Olá,
Eu preciso de ajuda para entender o tipo de dado "size_t", e seu funcionamento.


  


2. Re: ajuda sobre o tipo de dado "size_t"

Lucas Gabriel
LucasTAraujo

(usa Debian)

Enviado em 25/11/2021 - 15:21h


Primeiramente recomendo fortemente que você leia a documentação da linguagem para obter uma descrição técnica e completa , "Segundamente" seria legal se desse mais detalhes, por exemplo qual linguagem está se referindo, sei que está na categoria, mas não custa explicitar ;).

Agora vamos para resposta: size_t é um tipo básico de dados, sendo mais especifico um inteiro sem sinal, seus valores extremos normalmente variam entre [0,UINT_MAX], onde UINT_MAX é uma constante com o maior valor que um unsigned int pode armazenar, esse valor pode variar em diferentes compiladores ou arquiteturas. O size_t é o tipo de retorno de algumas funções como sizeof, mas também pode ser utilizado como qualquer outro tipo de dados, eu particularmente já o vi em contadores de laço de repetição e variáveis auxiliares para salvar posições de vetores/matrizes.


3. Re: ajuda sobre o tipo de dado "size_t"

Maycon Victorino
mayconv7

(usa Outra)

Enviado em 25/11/2021 - 17:30h


LucasTAraujo escreveu:


Primeiramente recomendo fortemente que você leia a documentação da linguagem para obter uma descrição técnica e completa , "Segundamente" seria legal se desse mais detalhes, por exemplo qual linguagem está se referindo, sei que está na categoria, mas não custa explicitar ;).

Agora vamos para resposta: size_t é um tipo básico de dados, sendo mais especifico um inteiro sem sinal, seus valores extremos normalmente variam entre [0,UINT_MAX], onde UINT_MAX é uma constante com o maior valor que um unsigned int pode armazenar, esse valor pode variar em diferentes compiladores ou arquiteturas. O size_t é o tipo de retorno de algumas funções como sizeof, mas também pode ser utilizado como qualquer outro tipo de dados, eu particularmente já o vi em contadores de laço de repetição e variáveis auxiliares para salvar posições de vetores/matrizes.


Muito obrigado pela ajuda, e desculpe por não específicar a linguagem que no caso é 'C'.




4. Re: ajuda sobre o tipo de dado

Paulo
paulo1205

(usa Ubuntu)

Enviado em 26/11/2021 - 19:39h

LucasTAraujo escreveu:

Primeiramente recomendo fortemente que você leia a documentação da linguagem para obter uma descrição técnica e completa , "Segundamente" seria legal se desse mais detalhes, por exemplo qual linguagem está se referindo, sei que está na categoria, mas não custa explicitar ;).

Agora vamos para resposta: size_t é um tipo básico de dados, sendo mais especifico um inteiro sem sinal, seus valores extremos normalmente variam entre [0,UINT_MAX], onde UINT_MAX é uma constante com o maior valor que um unsigned int pode armazenar, esse valor pode variar em diferentes compiladores ou arquiteturas. O size_t é o tipo de retorno de algumas funções como sizeof, mas também pode ser utilizado como qualquer outro tipo de dados, eu particularmente já o vi em contadores de laço de repetição e variáveis auxiliares para salvar posições de vetores/matrizes.


Essa informação é incorreta. Não há necessariamente ligação entre size_t, que é definido em <stddef.h>, e unsigned int ou com o valor constante UNIT_MAX (em <limits.h>). O padrão diz que size_t é de um tipo inteiro sem sinal, sem especificar qual tipo é esse para além de dizer que é o mesmo tipo de um valor devolvido pelo operador sizeof — pode ser unsigned int[b], mas também pode ser [b]unsigned long ou unsigned long long.

A simples existência do nome size_t é para livrar o programador de ter de saber qual a representação interna de dados desse tipo, que, no entanto, serve para representar o tamanho de qualquer objeto que o programa em C possa dispor (ou encontrar disposto) na memória. E essa existência encontra correspondentes em algumas funções da biblioteca padrão, tais como, por exemplo, o o modificador z na hora de imprimir ou ler um valor do tipo size_t com printf() e scanf().
// Exemplo 1: escrita.
printf("Tamanho de um valor inteiro: %zu bytes.\n", sizeof (int));

// Exemplo 2: leitura.
size_t s;
char *buffer;
printf("Quantos bytes deseja alocar para o buffer? ");
if(scanf("%zu", &s)!=1){
fputs("Erro de leitura.\n", stderr);
abort();
}
buffer=malloc(s);



... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts