CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

pourquoi ce code source bug ????

seiya0
seiya0
Niveau 7
21 août 2006 à 18:09:55

:salut: a tous
voila ce que j´ai fait, mais je ne sais pas pourquoi, quant je le lance, il me dis que : Proget.exe a rencontré un probleme et doit fermè
::

  1. include <stdio.h>
  2. include <stdlib.h>
  3. include <string.h>

typedef struct identite identite;
struct identite
{
char prenom;
char nom;
long age;

};

int main(int argc, char *argv[])
{
identite moussa;

moussa.prenom = "Moussa";
moussa.nom = "Je ne sais pas";
moussa.age = 20;

printf("%s %s %ld", moussa.prenom, moussa.nom, moussa.age);

system("PAUSE");
return 0;
}

et :merci:

seiya0
seiya0
Niveau 7
21 août 2006 à 18:13:20

j´ai oublier de precisier que je travaille sous Dev-c++

Pseudo supprimé
Pseudo supprimé 21 août 2006 à 18:56:41

char != String

seiya0
seiya0
Niveau 7
21 août 2006 à 19:13:55

j´ai pas bien compris ta reponse hitman_alias_47

Pseudo supprimé
Pseudo supprimé 21 août 2006 à 19:40:09

C´est la première fois que tu écris un programme en C ? Si tu ne fais pas la distinction entre un caractère et une chaîne de caractères, tu vas t´amuser avec les pointeurs... Oh, oui...
Un conseil, apprends la base avant de te lancer dans l´utilisation de structures complexes : C n´est pas PhP.

DantePC
DantePC
Niveau 10
21 août 2006 à 20:12:47

Puis en plus on n´utilise pas le = pour affecter une chaine à un tableau de char, on utilise strcpy ou strncpy

Pseudo supprimé
Pseudo supprimé 22 août 2006 à 08:37:50

On peut, mais seulement pour une intialisation (La chaine sera stoquée en dur par le compilo).

Fvirtman
Fvirtman
Niveau 10
22 août 2006 à 08:38:26

Ce qui m´étonne, c´est que le programme compile alors que tu assignes une chaine "moussa" a un char. es tu sur de ne pas avoir mis de char* dans ta structure ?
ça expliquerait des choses.

petite correction proposée (version C):

  1. include <stdio.h>
  2. include <stdlib.h>
  3. include <string.h>

typedef struct identite identite;
struct identite
{
char prenom[30];
char nom[30];
long age;

};

int main(int argc, char *argv[])
{
identite moussa;

strcpy(moussa.prenom,"Moussa");
strcpy(moussa.nom,"Raser");
moussa.age = 20;

printf("%s %s %ld", moussa.prenom, moussa.nom, moussa.age);

system("PAUSE");
return 0;
}

petite correction proposée (version C++):

  1. include <stdio.h>
  2. include <stdlib.h>
  3. include <string>

using namespace std;

typedef struct identite identite;
struct identite
{
string prenom;
string nom;
long age;

};

int main(int argc, char *argv[])
{
identite moussa;

moussa.prenom = "Moussa";
moussa.nom = "Raser";
moussa.age = 20;

printf("%s %s %ld", moussa.prenom.c_str(), moussa.nom.c_str(), moussa.age);

system("PAUSE");
return 0;
}

PS : humour, le "raser" :rire:

Pseudo supprimé
Pseudo supprimé 22 août 2006 à 09:08:29

un "long" pour l´âge ? C´est un peu ridicule, tu as déjà vu des âges négatifs et des âges de 2^31 ? UN usigned short serait plus approprié, pour l´instant...

I_am_a_mootix
I_am_a_mootix
Niveau 7
22 août 2006 à 11:15:11

hitman_alias_47 Posté le 21 août 2006 à 19:40:09 C´est la première fois que tu écris un programme en C ? Si tu ne fais pas la distinction entre un caractère et une chaîne de caractères, tu vas t´amuser avec les pointeurs... Oh, oui...
Un conseil, apprends la base avant de te lancer dans l´utilisation de structures complexes : C n´est pas PhP.

euh.. , ayant etudier le php , je trouve k´il est aussi complexe que le c

dnob700
dnob700
Niveau 10
22 août 2006 à 14:05:23

hitman : qu´est ce qu´on gagne à utiliser un "unsigned short" plutôt qu´un long ?

de nos jour on n´est plus à 2 octets près pour la mémoire, d´autant plus, qu´avec les problème d´alignement, sa structure comprennant des pointeurs vers des chaines, elle fera la même taille avec un long, un short, ou même un char.

dautre par, d´un point de vue vitesse de calcul, il n´y a pas de différence.

Il est donc aussi simple d´utiliser des int partout, plutot que de se compliquer la vie avec des noms de type à rallonge (sans compter qu´avoir des nombre négatif peut-être utile s´il vaut stocker des informations spéciale, ou alors son age en mois plutôt qu´en année, etc.)

godrik
godrik
Niveau 30
22 août 2006 à 14:28:10

bah, ca peut permettre au compilateur de vectorialiser si il fait plein de calcul sur des ages en meme temps... bon j´arrete.. :)

Ou alors s´il veut faire passer ca donné sur le reseau, ca economise de la BP. Mais bon, c´est de l´optim a 2 balles...

C´est vrai que mettre long est bizarre quand meme, j´aurais mis int...

dnob700
dnob700
Niveau 10
22 août 2006 à 15:57:59

oui, sauf que ça ne change rien, sur la plupart des archi standard avec des compilo standard (x86, AMD64, avec vc++ ou gcc, etc.) int et long sont exactement la même chose, donc c´est une différence pour le programmeur, mais pas pour le compilo.

Pseudo supprimé
Pseudo supprimé 22 août 2006 à 17:58:59

C´est surtout d´un point de vue conceptuel que c´est ridicule, un âge négatif pouvant tapper dans les milliards...
Après, oui, le compilo risque de mettre la bête dans le format au dessus pour des questions d´optimisation. Mais si tu passes sur une machine ou un compilo plus ancien, partir du postulat "long == int == short" va te causer de méchants bugs de type int overflow...

dnob700
dnob700
Niveau 10
22 août 2006 à 22:43:35

personne n´a dit

long == int == short.

Par contre, long == int oui.

Ce que je veux dire, c´est que ça ne sers à rien quand on apprend la programmation de se prendre la tête sur des problème qui risqueraient de se produire sur des environnement "ancien" (il faut aller vraiment loin), ou super tordu. Comme un amateur n´en rencontrera pas avant longtemps. C´est le genre de chose qui complique le langage pour rien.

Il est aussi simple d´apprendre le C avec la règle : quand on a besoin de dtocker un entier, on utilise un int. Et plus tard, on fait un peu plus dans la dentelle.

Pseudo supprimé
Pseudo supprimé 23 août 2006 à 08:29:19

dnob700 :d) +1 sur le fond, mais bon, autant s´habituer à respecter contraintes et normes, même si on sait qu´elles sont dépassées (Sauf si il y a un gain en performances à ne pas les respecter :p ). J´ai programmé pas mal en ASM sur diverses bestioles dans mes jeunes années, ça doit être de là que vient ma rigueur avec les types de données :p

Bigloo
Bigloo
Niveau 10
23 août 2006 à 11:24:20

"Ce que je veux dire, c´est que ça ne sers à rien quand on apprend la programmation de se prendre la tête sur des problème qui risqueraient de se produire sur des environnement "ancien" (il faut aller vraiment loin), ou super tordu"
-> Dans ce cas, pourquoi commencer par un langage dont le principal intérêt est que justemment il permet de se préoccuper de tout ça ?

Je suis tout à fait d´accord avec toi sur l´inutilité pour un débutant de penser à ça. Mais à force de dire "Venez, le C c´est facile" tu te retrouves avec des gens qui utilisent scanf à tout va, des codes sales, des fuites de mémoire...

godrik
godrik
Niveau 30
23 août 2006 à 13:22:14

Bigloo, le debat n´est pas centré la dessus dans ce topic.
Il a choisit le C, on l´aide en C du mieux que l´on peut.

Je ne suis absoluement pas convaincu que le C soit le meilleur language pour commencer a programmer.
Dans un premier temps parceque ce langage depend de qui ont est, des connaissance que l´on a en general, de la comprehension que l´on a du fonctionnement d´un ordinateur, de ce que l´on veut en faire.

En outre, le C est le langage pour lequel il y a le plus de support (AMHA) et cela peut le rendre attrayant pour un débutant.

Bigloo
Bigloo
Niveau 10
23 août 2006 à 15:05:50

"Il a choisit le C, on l´aide en C du mieux que l´on peut. "
-> Exact, et ça sera bien mieux pour lui de comprendre dès le début ce qu´il fait, si c´est dans le style du langage. Ne serait-ce que pour éviter de croiser un jour un puriste qui le dégoûtera complètement en lui expliquant toutes les mauvaises habitudes qu´il a prises.

godrik
godrik
Niveau 30
23 août 2006 à 15:08:43

comprendre oui, mais on ne peut pas tout apprendre en meme temps. La structure et la logique me semblent bien plus important pour un debuttant que la taille des variables.

Pourquoi serait il degoutte ? parcequ´il lui reste des choses a apprendre ?
On a toujours des choses qu´il nous reste a apprendre. (heureusement, sinon on s´ennuyerait)

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment