Articles of pointeurs

Échange de 2 pointeurs de chaîne avec une fonction dont les parameters sont nuls **

Le code suivant ne comstack pas: void swap(void **p, void **q) { void *tmp; tmp = *p; *p = *q; *q = tmp; } int main(void) { char *s[] = {“help” , “please”}; swap(&s[0], &s[1]); return 0; } Bien que ce code soit compilé et fonctionne parfaitement: void swap(void **p, void **q) { void *tmp; […]

Comment un pointeur de tableau stocke-t-il sa taille?

#include “stdio.h” #define COUNT(a) (sizeof(a) / sizeof(*(a))) void test(int b[]) { printf(“2, count:%d\n”, COUNT(b)); } int main(void) { int a[] = { 1,2,3 }; printf(“1, count:%d\n”, COUNT(a)); test(a); return 0; } Le résultat est évident: 1, count:3 2, count:1 Mes questions: Où les informations de longueur (nombre / taille) sont-elles stockées lorsque “a” est déclaré? […]

Expliquer la différence entre les pointeurs proche, lointain et énorme en c

Dupliquer possible: différence entre le pointeur loin et le pointeur proche en C J’ai cherché dans GOOGLE la différence entre ces trois indicateurs. Mais j’ai découvert la différence entre l’un des deux indicateurs. Pouvez-vous donner une explication détaillée de ceci s’il vous plaît?

Comment passer un tableau de caractères 3D à une fonction

J’ai un tableau 3D de caractères [] [] [] et je souhaite le passer à une fonction void afin qu’il puisse y apporter des modifications Comment puis-je faire ceci? void make(char minor[][][]); ….. char greater[20][30][50]; make(greater); Je suppose que ça ne marchera pas. EDIT: Une autre question liée à ceci: Dites que je veux faire […]

Atsortingbuer de la mémoire à un tableau 3D à l’aide d’un sortingple pointeur

Je dois atsortingbuer de la mémoire à un tableau 3D à l’aide d’un sortingple pointeur. #include int main() { int m=10,n=20,p=30; char ***z; z = (char***) malloc(sizeof(char**)*m*n*p); return 0; } Est-ce que c’est correct de faire ça? (Je pense que ce que je fais est incorrect.)

Pourquoi utiliser des pointeurs en C?

Je me demande encore pourquoi, en C, vous ne pouvez pas simplement définir quelque chose de différent avec des variables simples. Une variable elle-même est un pointeur sur des données, n’est-ce pas? Alors, pourquoi faire pointer les pointeurs sur les données de la variable quand vous pouvez simplement utiliser la variable originale? Est-ce pour accéder […]

Un tableau / nom de domaine n’est-il pas toujours un pointeur sur le premier élément de C?

Ce qui se passe ci-dessous n’est pas un nom de domaine toujours un pointeur sur le premier élément de C int myArray[10] = {0}; printf(“%d\n”, &myArray); /* prints memadress for first element */ printf(“%d\n”, myArray); /* this prints a memadress too, shows that the name is a pointer */ printf(“%d\n”,sizeof(myArray)); /* this prints size of […]

Un pointeur a-t-il également une adresse ou une allocation de mémoire?

Si un pointeur stocke l’adresse d’une variable … d’où provient-il le pointeur? Ce que j’ai demandé, c’est que si nous utilisons le pointeur directement, il doit y avoir un emplacement d’où provient ce pointeur

Pourquoi ne puis-je pas convertir un tableau à deux dimensions en un pointeur à deux dimensions en C?

Pourquoi le programme suivant donne-t-il une ‘conversion’ : cannot convert from int[1][1] to int** erreur ‘conversion’ : cannot convert from int[1][1] to int** erreur ‘conversion’ : cannot convert from int[1][1] to int** ? Je comstack avec VS2008 sous Windows 7. int main(){ int a[1][1] = {0}; int **p = a; }

Changer la valeur de const int en utilisant using pointeur

J’ai écrit un programme C en gcc et cela me donne une sortie très inattendue. Le code est: #include int main(){ const int x=10; int *p=&x; *p=11; printf(“%d\n”,*p); printf(“%d”,x); printf(“\n%u\n”,p); printf(“%u”, &x); } Ici la sortie est: 11 dix 37814068 37814068 Pourquoi p et & x donnent la même adresse (37814068) mais des valeurs différentes […]