Articles of pointeurs

Quelle est la différence entre les définitions de tableau char * str = {“foo”,…} et char str = {“foo”,…}?

Cas 1: Quand j’écris char*str={“what”,”is”,”this”}; alors str[i]=”newssortingng”; est valide alors que str[i][j]=’j’; est invalide. Cas 2: Quand j’écris char str[][5]={“what”,”is”,”this”}; alors str[i]=”newssortingng”; n’est pas valide alors que str[i][j]=’J’; est valable. Pourquoi est-ce? Je suis un débutant qui est déjà très confus après avoir lu les autres réponses.

Erreur: la valeur vide n’est pas ignorée comme elle devrait l’être en programmation C

J’écris un programme C qui a deux fonctions. Une fonction est la fonction principale habituelle et l’autre est une fonction de pointeur vide. Lorsque j’essaie de comstackr mon programme sur un système Linux, le message d’erreur suivant s’affiche: host1@masortingx:~/cprog/practice> gcc -o function1 function1.c prog1.c: In function ‘main’: prog1.c:16:14: error: void value not ignored as it […]

Comment puis-je passer le * argv de main à une fonction?

J’ai un programme qui accepte les arguments de ligne de commande et je souhaite accéder aux arguments entrés par l’utilisateur à partir d’une fonction. Comment puis-je passer le *argv[] , de int main( int argc, char *argv[]) à cette fonction? Le concept de pointeurs est assez nouveau pour moi et *argv[] est un peu trop […]

Arithmétique et tableaux de pointeurs: qu’est-ce qui est vraiment légal?

Considérez les affirmations suivantes: int *pFarr, *pVarr; int farr[3] = {11,22,33}; int varr[3] = {7,8,9}; pFarr = &(farr[0]); pVarr = varr; A ce stade, les deux pointeurs pointent au début de chaque adresse de tableau respective. Pour * pFarr, nous examinons actuellement 11 et pour * pVarr, 7. De même, si je demande le contenu […]

Masortingce, pointeurs, C *

J’ai un code comme ça: void print_masortingx(int **a, int n) { int i, j; for(i = 0; i < n; i++) { for(j = 0; j < n; j++) printf("%d\t", *(a+i*n+j)); putchar('\n'); } } int main () { int matrix[3][3]; insert (matrix); /* Function that reads Matrix from stdin */ print_matrix(matrix, 3); return 1; } […]

renvoyer une mauvaise adresse de la fonction pop

Après avoir résolu d’autres problèmes avec ma structure, mon push fonctionne comme prévu, mais mon pop renvoie la mauvaise adresse et je ne sais pas pourquoi – QNode* const Q_Pop(Q* const pointerQ){ … // empty check QNode* tempNode = pointerQ->front.next; pointerQ->front.next = (tempNode->next); tempNode->next->prev = &(pointerQ->front); return tempNode; } Je suis à peu près certain […]

changer un pointeur d’adresse d’une autre application

J’ai besoin de quelqu’un pour éditer le titre, je ne peux pas trouver un meilleur titre. Supposons un programme simple appelé source.exe : #include int main() { int a = 5; printf(“%p”, &a); return 0; } Je veux écrire une autre application, change.exe , qui change a dans ce qui précède. J’ai essayé quelque chose […]

Modification du littéral de chaîne transmis en tant que fonction

Si j’ai une fonction dans le programme int main(){ char *name = “New Holland”; modify(name); printf(“%s\n”,name); } qui appelle cette fonction void modify(char *s){ char new_name[10] = “Australia”; s = new_name; /* How do I correct this? */ } Comment puis-je mettre à jour la valeur du nom littéral de chaîne (qui équivaut maintenant à […]

Quel est le type de pointeur d’un tableau multidimensionnel lorsqu’il est transmis à une fonction?

J’apprends le C et les pointeurs dans ma classe universitaire et je pense que je comprends assez bien le concept, à l’exception de la similitude entre les tableaux multidimensionnels et les pointeurs. Je pensais que puisque tous les tableaux (même multidimensionnels) sont stockés en mémoire continue, vous pouvez le convertir en toute sécurité en un […]

Créer un tableau 2D en passant le pointeur à fonction en c

J’ai donc lu des dizaines d’exemples de passage d’un pointeur de tableau 2D à fonction pour obtenir / modifier les valeurs de ce tableau en fonction. Mais est-il possible de créer (allouer de la mémoire) à l’intérieur de la fonction. Quelque chose comme ça: #include void createArr(int** arrPtr, int x, int y); int main() { […]