C'est la répose que je cherchais.
Un grand merci edgarjacobs.
Type: Messages; Utilisateur: hogar
C'est la répose que je cherchais.
Un grand merci edgarjacobs.
Merci beacoup edgarjacobs.
J'ai voulu juste comprendre pourquoi le programme que j'ai posté fonctionne (il fonctionne sur mon poste et également en utilisant un compilateur en ligne).
Je ne...
C'est ça la question, si on débugue ou on ajoute des printf() on remarque qur r contient l'adresse du dernier élement ce qui permet d'inserer le dernier node créé lors d'un appel ultérieur de la...
Bonjour,
Je suis d'accord mais ce programme fonctionne parfaitement (je ne cherche pas à écrire un autre) mais ma question est liée à la valeur de la variable locale "r" ou bien comment...
Bonjour,
Je suis d'accord avec toi feotus :
On passe en paramètre sortie/ écriture l'adresse d'1 pointeur : Node** temp. Ok : On récupére l'adresse de tête de liste comme temp est passée par...
La fonction ci-dessous ne présente aucune erreur lors de la compilation, mais je n'ai pas compris la transmission de la valeur du pointeur "r" (variable locale) à travers les appels de la fonction...
Merci Sve@r.
Bonjour,
Merci Sve@r j'ai remplacé scanf() par fgets et sscanf() et ça marche.
char chaine[100];
.......................................................
printf("\nGive an integer number :...
typedef struct Node
{
int val; //Data
struct Node* pt_next; //pointeur (lien) vers l'élement suivant de même type (pointeur sur un objet de type Node)
} Node;
int...
Merci sve@r pour ta réponse.
C'est toujours un problème lié à scanf() dans une boucle en particulier avec les chaine de caractères. D'ailleurs que je n'ai jamais pu résoudre ni trouver une...
Bonjour,
Mon fonction ci-dessous sort normalement (pas d'erreur lors de la compilation) mais je ne peux que remplir qu'une seule valeur.
Node* createList()
{
char ch;
Un grand merci à tout le monde et en particulier à CGI.
Bonjour,
J'ai ce proramme qui n'affiche aucune erreur lors de la compilation mais aucun affichage de résultat.
#include <stdio.h>
void assign(int (*mat)[3], int N, int M)
{
for (int...
Bonsoir,
Pour le premier code, je n'ai pas compris pourquoi CGI utilise *mat dans le calcul d'adresse *(*mat+i*M+j)) au lieu de mat sans étoile d'ailleurs je n'arrive pas à assimiler la...
Bonsoir,
merci pour toutes les explications mais je reprends le code de foetus (mon besoin actuel):
#include <stdio.h>
#include <stdlib.h>
void Assign_V1(int *mat[4], size_t nb_lines,...
Si j'ai bien compris :
int* mat[3] (ou int* mat[]) est équivalente à int** mat : un tableau de pointeurs où chaque pointeur pointe sur un tableau d'entiers.
A confirmer ? Si oui donc...
Autant pour moi, effectivement çà marche avec le changement du prototype dans le code initial.
Honnêtement, je suis perdu, je n'arrive pas à faire la différence (en termes de conception) :
int...
oui CGI, c'est mon code initial.
Voici le code :
#include <stdio.h>
#include <stdlib.h>
void Assign_V1(int (*mat)[3], size_t nb_lines, size_t nb_columns)
{
size_t line, column;
Mais en changeant le prototype, j'ai eu ces erreurs :
main.c: In function ‘main’:
main.c:35:20: warning: passing argument 1 of ‘Assign_V1’ from incompatible pointer type...
Oui dans mon cas il s'agit d'un pointeur sur tableaux de trois entiers (*mat)[3]. Y a t'il une différence dans l'allocation mémoire :
for(line=0, is_ok=1; (is_ok && (line < G_NB_LINES)); ++line) ...
Donc, pour le paramètre
int* mat[3], ce qu'on met entre crochets [3] représente le nombre de lignes et non de colonnes !
Merci pour votre réponse.
En revanche, je n'ai pas compris le test if (mat[line] == NULL) { is_ok = 0; } est-il necéssaire ? est ce qu'il y a risque d'avoir une adresse NULL quand on passe par la...
Bonjour,
Comme le précise le titre je veux faire une allocation mémoire de int* mat[3] et non pas int** mat puis je dois passer la matrice comme paramètre à la fonction (Assign_V1()).
void...
Re-bonjour,
Merci beaucoup pour la réponse, c'est claire et nette.
Juste un petit point l'écriture (cas allocation dynamique) si j'ai bien compris : char (*string)[M] = char* string[M] => c.à.d...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.