Bonjour tout le monde
D'avance désolé pour l'orthographe qui malgré mes efforts ne doit pas être au top.... bref
Ceci est mon 1er post sur ce forum donc soyez indulgent svp ;D
Je Travaille sur un programme qui afficherai les n 1er rangs de la Suite de Conway, Le programme me semble bon et pourtant...
En effet au moment de la compilation mon compilateur (gcc) me retourne des erreurs au niveau de mes "malloc" qui sont tous faut...
Je ne comprend pas ou est mon erreur et si quelqu'un pouvais m'éclairer il serait vraiment cool
Merci d'avance
Mon .H :
Code:#include <stdio.h> #include <stdint.h> typedef struct elm { int Val; struct elm *suivant; } element; typedef element* list; typedef struct uni { int Val1; int Val2; struct uni *suivant; }unit ; typedef unit* Dlist; Dlist scan(list L); list compose(Dlist L); list AjtTetelist(list L, int N); Dlist AjtTeteD(Dlist L, int N1, int N2); list init(int N); void display(list L);
ET Mon .C
Code:#include "Conway.h" int main() { system("CLS"); int n,count=0; list Conway = (list)malloc(sizeof(element)); Dlist PASS = (Dlist) malloc(sizeof(unit)); Conway=init(1); printf("Calcul de la suite de Conway jusque à quel rang n ?"); scanf("%d",&n); for(count=0;count<=n;count++) { PASS=scan(list Conway); Conway=compose(PASS); } display(Conway); } Dlist scan(list L) { int k=L->Val, Compteur=1, Valeur; Dlist Tab=(Dlist) malloc(sizeof(unit)); while(L->suivant!=NULL) { Valeur = L->Val; while(L->Val=L->suivant->Val) { Compteur++; L=L->suivant; } Tab=AjtTeteD(Tab,Compteur,Valeur); L=L->suivant; } return Tab; } list compose(Dlist L) { int J=0; list Listefinal; while(L->suivant!=NULL) { for(J=0;J<=L->Val1;J++) { AjtTetelist(Listefinal, L->Val2); } L=L->suivant; } return Listefinal; } list AjtTetelist(list L, int N) { if(L=NULL) { list temp = (list) malloc(sizeof(element)); temp->suivant=NULL; temp->Val=N; return temp; } else { list Lbis=L; while(L->suivant!=NULL) { L=L->suivant; } list temp=(list)malloc(sizeof(element)); temp->suivant=NULL; temp->Val=N; return Lbis; } } Dlist AjtTeteD(Dlist L, int N1, int N2) { if(L=NULL) { Dlist temp=(Dlist)malloc(sizeof(unit)); temp->suivant=NULL; temp->Val1=N1; temp->Val2=N2; return temp; } else { Dlist Lbis=L; while(L->suivant!=NULL) { L=L->suivant; } Dlist temp=(Dlist)malloc(sizeof(unit)); temp->suivant=NULL; temp->Val1=N1; temp->Val2=N2; return Lbis; } } list init(int N) { list temp=(list)malloc(sizeof(element)); temp->suivant=NULL; temp->Val=N; return temp; } void display(list L) { while(L->suivant!=NULL) { printf("%d",L->Val); } printf("\n"); }
-----