Articles of casting

Détermination de l’index à partir de bsearch et de lfind?

J’essaie d’obtenir l’index de l’élément dans le tableau après que lfind et bsearch aient renvoyé le pointeur sur l’élément trouvé. J’ai ceci jusqu’à présent: (char *) (found – cv->baseAddress); où found est l’adresse de ce que les fonctions ont trouvé, et l’adresse de base est l’adresse de l’élément 0. Cependant, le compilateur me donne cette […]

C – pointeurs lorsque de nouvelles fonctions sont appelées

Dis que j’ai quelque chose comme: function2(int *hello) { //something } function1(int *hello) { function2(&hello); } void main() { int hello = 0; function1(&hello); } Comment puis-je faire en sorte que function2 puisse changer la valeur d’origine déclarée dans main ?

Pointeur en fonte à utiliser avec qsort

Cette main d’extrait de code copiée à partir d’un livre que je lis: /* scmp: ssortingng compare of *p1 and *p2 */ int scmp(const void *p1, const void *p2) { char *v1, *v2; v1 = *(char **) p1; v2 = *(char **) p2; return strcmp(v1, v2); } Cette fonction est utilisée avec qsort pour sortinger […]

pow () converti en entier, résultat inattendu

J’ai quelques problèmes à utiliser une conversion entière pour la fonction pow() dans le langage de programmation C. Le compilateur que j’utilise est le compilateur Tiny C (version 0.9.24 de tcc) pour la plate-forme Windows. Lors de l’exécution du code suivant, le résultat inattendu 100, 99 : #include #include int main(void) { printf(“%d, “, (int) […]

Comment convertir un préprocesseur (macros) en sortie

J’ai une macro très simple pour laquelle je veux classer sa sortie en int uniquement. Comment faire ça? #define Numbits(A) (sizeof(A)*CHAR_BIT) J’ai essayé: #define int Numbits(A)({int val; val = sizeof(A)*CHAR_BIT; return val;}) mais ça ne marche pas non plus

Assignation rend le pointeur d’Int sans sortie

Je comstack du code pour un programme qui mémoise des nombres de fibonacci. Le programme fonctionne parfaitement, mais lorsque je comstack dans un environnement Linux, je reçois cet avertissement avant de comstackr. line 61: warning: assignment makes pointer from integer without a cast [enabled by default] Voici un extrait de code indiquant l’origine de cet […]

Que fait vraiment un casting C?

J’écris de plus en plus d’applications C, et maintenant je m’interroge sur les moulages. En C ++, une conversion dynamic est une opération très coûteuse (par exemple, une conversion), mais je ne sais même pas pour une dissortingbution statique. En C, je devais écrire quelque chose comme ça: assert ( p ); /* p is […]

Lancer un pointeur – Quelle est la différence au moment de l’exécution?

Considérez le petit exemple de code suivant: #include #include int main() { int *i; char *c1, *c2; i = malloc(4); *i = 65535; c1 = i; c2 = (char *)i; printf(“%p %p %p\n”, i, c1, c2); printf(“%d %d”, *c1, *c2); free(i); return 0; } Dans l’exemple, j’alloue de la mémoire pour stocker un entier, désigné […]

Que se passe-t-il lorsque le pointeur float est transtypé en pointeur de caractère?

int main() { float f = 12.2; char *p1; p1 = (char *)&f; printf (“%d”, *p1); } Cette sortie 51.

Couler une structure en C dans une autre

J’ai deux structures C identiques (mais nommées différemment): typedef struct { double x; double y; double z; } CMAcceleration; typedef struct { double x; double y; double z; } Vector3d; Maintenant, je veux affecter une variable CMAcceleration à une variable Vector3d (en copiant la structure entière). Comment puis-je faire ceci? J’ai essayé ce qui suit, […]