Articles of taille t

Qu’est-ce que sizeof (size_t) sur 32 bits par rapport aux différents modèles de données 64 bits?

Sur un système 64 bits, sizeof(unsigned long) dépend du modèle de données implémenté par le système. Par exemple, il s’agit de 4 octets sur LLP64 (Windows), 8 octets sur LP64 (Linux, etc.). Qu’est-ce que sizeof(size_t) censé être? Cela varie-t-il avec le modèle de données comme sizeof(long) ? Si c’est le cas, comment? Références: Modèles de […]

Ajouter ou assigner un littéral entier à un size_t

Dans CI, vous voyez beaucoup de code qui ajoute ou atsortingbue un littéral entier à une variable size_t . size_t foo = 1; foo += 1; Quelle conversion a lieu ici, et peut-il arriver qu’un size_t soit “mis à niveau” vers un int puis reconverti en un size_t ? Est-ce que ça restrait quand même […]

Quelle est la limite du paramètre malloc de type size_t en C? Les docs disent qu’il a une limite supérieure de UINT_MAX mais je ne peux pas aller au-delà de INT_MAX

Je souhaite allouer un tableau de caractères de 2,9 Go avec database = (char*) malloc((2900 * 1000000 * sizeof(char))); Cela donne un avertissement de dépassement d’entier et le malloc renvoie NULL . Le paramètre malloc est du type size_t qui, selon la documentation, est du type unsigned int . Donc, le maximum devrait être UINT_MAX […]

Objective-C Runtime: Que faut-il mettre pour la taille et l’alignement pour class_addIvar?

Objective-C Runtime fournit la fonction class_addIvar C : BOOL class_addIvar(Class cls, const char *name, size_t size, uint8_t alignment, const char *types) Que dois-je mettre pour la size et l’ alignment ? UITextPosition * une variable d’instance de type UITextPosition * , mais aucun object UITextPosition n’est dans la scope. Pour la size , puis-je simplement […]

Quel type pour soustraire 2 size_t?

Quel type en C doit être utilisé pour représenter la différence entre les tailles de deux objects? Comme size_t n’est pas signé, quelque chose comme size_t diff = sizeof (small_struct) – sizeof (big_struct); évidemment ne serait pas correct et il me semble qu’il n’y a pas de véritable équivalent signé. ptrdiff_t semble tentant, mais comme […]

Taille maximale de size_t

Je sais que dans C type d’opérateur sizeof est size_t type entier non signé étant défini dans . Ce qui signifie que sa taille maximale doit être 65535 comme indiqué dans la norme C99 7.18.3 : limit of size_t SIZE_MAX 65535 Cependant, dans le fichier d’en gcc-4.8.2 tête gcc-4.8.2 , stdint.h a défini une taille […]

Ajout d’une variable size_t à un pointeur

Je veux append un type size_t à un pointeur. Certains aiment ça: void function(size_t sizeA,size_t sizeB){ void *pointer; pointer=malloc(sizeA); pointer=pointer+sizeB; } Dans le cas hipothetic que cela ne se terminera pas par un segfault, la question est: puis-je faire cela? Ajouter un type size_t à un pointeur? Et l’adresse résultante sera dans l’adresse ‘taille’?

Comment obtenir size_t depuis une chaîne?

J’ai besoin d’obtenir une taille de tableau à partir d’une entrée utilisateur. Il m’a semblé naturel de stocker l’entrée en tant que size_t , mais en recherchant une fonction strto…() appropriée strto…() , je n’en ai trouvé aucune. Je viens d’utiliser strtoull() , puisque unsigned long long est garanti d’être d’au moins 64 bits et […]

Y at-il un équivalent à size_t dans llvm

Certaines bibliothèques système telles que malloc strlen veulent ou retournent size_t en tant que paramètre. Quel est le bon choix dans LLVM IR pour interagir avec ces fonctions? La sélection est-elle la tâche du compilateur? Est-ce que LLVM IR a un type size_t?

Quelle est la définition correcte de size_t?

Tout d’abord, que veux-je dire par «définition correcte»? Par exemple, K & R dans “C Programming Language” 2nd ed. , dans la section 2.2 Types et tailles de données , énoncez très clairement les entiers: Il existe short types short , int et long pour les types entiers. Ils sont nécessaires pour représenter les valeurs […]