Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
818 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  j'sais pas mallocer en C???

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

j'sais pas mallocer en C???

n°280686
fait le ze​n
Posté le 07-01-2003 à 01:35:20  profilanswer
 

j'capte pas trop ce qui se passe : j'veux declarer un char** et
l'allouer.
 
si j fais  

Code :
  1. char **pho2;
  2. *pho2 =  calloc(5,sizeof(char));
  3. pho2=  calloc(60,sizeof(*pho2));

 
ca marche pas  (seg fault)
 
et si je fais  

Code :
  1. char *pho2[60];
  2. pho2[60] = calloc(5,sizeof(char));


 
bah ca marche quelqu'un peut me l expliquer ?


Message édité par fait le zen le 07-01-2003 à 01:37:35
mood
Publicité
Posté le 07-01-2003 à 01:35:20  profilanswer
 

n°280690
Taz
bisounours-codeur
Posté le 07-01-2003 à 02:08:41  profilanswer
 

ni l'un ni l'autre ne marche
 
apparemment tu debutes, alors expliques plus précisément ce que tu voudrais faire afin de pouvoir te donner une réponse précise
 
néanmoins, retiens déjà:
 
- sizeof(char) == 1, par définition
- en C les indices vont de 0 à n-1, ou n est le nombre d'éléments alloués
- calloc alloue dynamiquement et mets tous les bits du segment de mémoire alloué à 0. ce qui pour résultat de mettre à 0 des entiers, mais il n'en est rien pour tous les autres types (float)0x00000000 != 0.0f
- ta question portait sur malloc
   malloc(N* sizeof(TYPE)) <=> calloc(N, sizeof(TYPE)), à l'initialisation pres

n°280691
nraynaud
lol
Posté le 07-01-2003 à 02:15:30  profilanswer
 

fait le zen a écrit :

j'capte pas trop ce qui se passe : j'veux declarer un char** et
l'allouer.


 
Juste d'un point de vue typage, je laisse les neuneux répondre au reste, malloc renvoie un pointeur sur l'objet à allouer, il faut donc une seule étoile de différence entre le contenu du sizeof() et le type de sortie du maloc().
ex:  
 

Code :
  1. unsigned int nblignes = 60;
  2. char **pho2; /*poiteur sur un pointeur de (char *)  */
  3. pho2 = (char **)calloc(nblignes, sizeof(char *)); /* alloue une série de pointeurs de tableau de char, sans allouer les tableaux  eux-même  */

 
 
malheureusement pour toi, ça n'alloue qu'un tableau de pointeur et il faut allouer après chaque ligne du tableau :

Code :
  1. unsigned int i;
  2. for (i = 0; i < nblignes; i++) {
  3.   pho2[i] = calloc(longueur_de_la_ligne_qui_pourrait_etre_differente_a_chaque_ligne, sizeof(char));
  4. }

 
 
voilà, n'oublie pas que dans le calvaire du C, il faut un caractère de plus par chaîne (donc dans les deuxième bout de cod e su tu ne comprends rien) pour y foutre un '\0', bienvenue dans un langage de merde pas du tout safe, si tu as encore le temps de changer, passe à Ada.

n°280692
Taz
bisounours-codeur
Posté le 07-01-2003 à 02:18:37  profilanswer
 

nraynaud a écrit :


Juste d'un point de vue typage, je laisse les neuneux répondre au reste,  


 
si ca t'embete tellement de repondre, te donne pas cette peine. Et merci de ne pas lancer de phrase comme "le C c'est de la merde".

n°280736
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 07-01-2003 à 09:11:51  profilanswer
 

nraynaud a écrit :


je laisse les neuneux répondre au reste


Tu te crois ou toi ? :heink:
 
Quant à ta remarque sur le C qui n'est pas safe, je te dirais que le C est safe pour ceux qui prennent la peine de coder safement !
Maintenant, si tu codes comme un porc, ta remarque ne m'étonne pas !
Quant au fait de lui conseiller de passer à ADA, permet moi de me foutre gentiment de ta gueule. Pas pour critiquer ADA, que je ne connais pas, mais pour te rappeler à la réalité et te dire que ce langage est très peu utilisé sur le marché du travail. C'est bien beau d'utiliser des langages safe (généralement utilisés par des codeurs malpropres ou fainéants), mais encore faut il ne pas être le seul à les utiliser...


---------------
J'ai un string dans l'array (Paris Hilton)
n°281016
nraynaud
lol
Posté le 07-01-2003 à 13:04:28  profilanswer
 

Harkonnen a écrit :


Tu te crois ou toi ? :heink:
 
Quant à ta remarque sur le C qui n'est pas safe, je te dirais que le C est safe pour ceux qui prennent la peine de coder safement !


tiens, j'en ai un, c'est génial comme ils sont prévisible, en 10s y'en a un qui te sort qu'il suffit de savoir coder pour que ce soit safe. C'est tellement vrai qu'on a inventé la protection mémoire pour des mecs comme ça ; c'est honteux, il aurait fallu les muter au service café-sandwich-photocopie et leur interdire de toucher à un clavier plutôt.
 

Citation :


Maintenant, si tu codes comme un porc, ta remarque ne m'étonne pas !
Quant au fait de lui conseiller de passer à ADA, permet moi de me foutre gentiment de ta gueule. Pas pour critiquer ADA, que je ne connais pas, mais pour te rappeler à la réalité et te dire que ce langage est très peu utilisé sur le marché du travail. C'est bien beau d'utiliser des langages safe (généralement utilisés par des codeurs malpropres ou fainéants), mais encore faut il ne pas être le seul à les utiliser...


 
Malheureusement, l'industrie est peuplée de mecs comme toi, la qualité des logiciels s'en ressent et l'immobilisme est roi. L'industrie métalurgique (il suffit de regarder l'évolution des alliages pour le voir) évolue largement plus vite que l'informatique à cause de ça. Même Ada qui est plus récent que C est dépassé actuellement, mais les mecs qui se croient fort ne font aucune veille sur leur outil principal (le langage) et utilisent l'équivalent de la pierre taillée en disant "les vrais utilisent ça".
Quand je pense qu'il a fallu moins de 10 entre l'invention du CD et sa comercialisation ... Et qu'on en est encore à utiliser du (void *) dans l'informatique !

n°281019
chrisbk
-
Posté le 07-01-2003 à 13:09:57  profilanswer
 

Citation :

je laisse les neuneux répondre au reste, malloc renvoie un pointeur sur l'objet à allouer,


 
Heureusement que les forums sont pas peuplé que de couillons (pretentieux/je-sais-tout/je-reponds-pas-car-c-trop-con-pour-moi) dans ton genre, sinon y serviraient a pas grand chose.
 
 
 

n°281022
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 07-01-2003 à 13:20:14  profilanswer
 

nraynaud a écrit :


tiens, j'en ai un, c'est génial comme ils sont prévisible, en 10s y'en a un qui te sort qu'il suffit de savoir coder pour que ce soit safe. C'est tellement vrai qu'on a inventé la protection mémoire pour des mecs comme ça ; c'est honteux, il aurait fallu les muter au service café-sandwich-photocopie et leur interdire de toucher à un clavier plutôt.


 
Tu vois, là ce qui me choque et loin de totue considération purement informatique, c'est ta façon de t'adresser aux gens. Ca fait plusieurs semaines que je lis ton dédain se balader de post en post, accompagné d'une bonne dose de mépris et (parfois) d'insultes.
Ton thème récurrent c'est "c'est à cause de ce genre de mecs que l'industrie avance pas". Permets-moi donc d'y ajouter quelques précisions : une entreprise a avant tout pour but de faire du fric et pas forcément d'être super réglo dans son respect des normes ou des formats. C'est pas pour rien que Microsoft est une boîte pourrie de thunes. Il vaut mieux le plus souvent faire du user-friendly que du W3C compliant (cela dit sans vouloir vexer qui que ce soit qui respecte les normes, mais c'est une réalité).
D'autre part, tu n'as pas bien l'air au courant que pour faire passer un point de vue, il est mieux de savoir l'expliquer avec pédagogie qu'avec mépris. Avoir tendance à considérer les autres comme de la merde, ça te retombe toujours dessus et de toute façon ça n'encourage personne à appliquer tes conseils.
 
En décodé : sois plus respectueux des autres et mets-la en veilleuse. Non seulement tu te feras respecter à ton tour, mais en plus tes conseils techniques, si précieux soient-ils, seront plus facilement appliqués. Tu veux changer le monde de l'industrie ? Alors commence par te faire comprendre.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°281028
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 07-01-2003 à 13:29:55  profilanswer
 

nraynaud a écrit :


tiens, j'en ai un, c'est génial comme ils sont prévisible, en 10s y'en a un qui te sort qu'il suffit de savoir coder pour que ce soit safe. C'est tellement vrai qu'on a inventé la protection mémoire pour des mecs comme ça ; c'est honteux, il aurait fallu les muter au service café-sandwich-photocopie et leur interdire de toucher à un clavier plutôt.


Bon déjà, de quel droit traites tu les gens de neuneus sans même les connaitre ? A t'on gardé les moutons ensemble ? Je ne crois pas ! Donc, Monsieur je sais tout, je te prierais de ne pas insulter les gens, surtout quand tu ne les connais pas. Ton attitude est révélatrice d'un égo démesuré, ou plutôt d'un frustré, qui ne se plait pas dans son boulot et qui en veut à la terre entière.
Je maintiens que le C, utilisé proprement, est safe ! Il suffit juste de faire attention ! Personnellement, le '\0' à la fin de la chaine de caractères ne me dérange pas du tout ! Il suffit juste de faire gaffe.
C'est sur que si tu malloc() sans faire de free() derrière, ça va pas le faire ! Je dis pas que tu le fais, mais la plupart des débutants l'oublient, et des types comme toi ne se privent pas de sauter sur l'occasion pour enfoncer le C, trop heureux de l'aubaine qui s'offre à eux d'enfoncer le seul langage qui cumule performances et (relative) facilité d'utilisation.  
Donc si tu n'as rien de constructif à dire, passe ton chemin.
 
 

nraynaud a écrit :


Malheureusement, l'industrie est peuplée de mecs comme toi, la qualité des logiciels s'en ressent et l'immobilisme est roi. L'industrie métalurgique (il suffit de regarder l'évolution des alliages pour le voir) évolue largement plus vite que l'informatique à cause de ça. Même Ada qui est plus récent que C est dépassé actuellement, mais les mecs qui se croient fort ne font aucune veille sur leur outil principal (le langage) et utilisent l'équivalent de la pierre taillée en disant "les vrais utilisent ça".
Quand je pense qu'il a fallu moins de 10 entre l'invention du CD et sa comercialisation ... Et qu'on en est encore à utiliser du (void *) dans l'informatique !


Tu sais, je n'ai pas demandé à mon patron d'utiliser le C++. Je suis arrivé dans ma boite, et on m'a imposé ce langage. Et je ne m'en plains pas, loin de la. Je ne sais pas si tu travailles ou si tu es étudiant, mais sache qu'on ne fait pas toujours ce qu'on veut dans la vie !! Sinon je coderais en assembleur, le seul langage avec lequel je prenne vraiment mon pied !  
Quant à la qualité des logiciels qui dépend du langage utilisé comme tu le sous entends, j'ai jamais lu plus belle connerie !! De très bons logiciels sont faits en VB (Je pense à NETI et tous les logiciels de Kyle_Katarn, ou TarifCom par exemple). Dire qu'un logiciel est mauvais parce qu'il est fait dans tel ou tel langage, c'est vraiment n'importe quoi !!


---------------
J'ai un string dans l'array (Paris Hilton)
n°281049
kadreg
profil: Utilisateur
Posté le 07-01-2003 à 13:50:00  profilanswer
 


 
Je suis fan  :love:


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
mood
Publicité
Posté le 07-01-2003 à 13:50:00  profilanswer
 

n°281110
BifaceMcLe​OD
The HighGlandeur
Posté le 07-01-2003 à 15:20:55  profilanswer
 

Harkonnen> Désolé de ramener mon grain de sel, mais autant je suis d'accord avec toi pour critiquer le dédain manifeste de raynaud, autant sur le fond, je suis d'accord avec lui.
 

Harkonnen a écrit :


Je maintiens que le C, utilisé proprement, est safe !


La définition d'un langage "safe", c'est, précisément, un langage qui permet de détecter les erreurs que peut faire ou écrire le programmeur. S'il faut supposer que le langage doit être utilisé comme il faut pour obtenir des programmes corrects, alors on ne peut pas dire que ce langage est "safe".
Or puisqu'un programmeur est par définition (encore ! :D ) humain, il fait systématiquement des erreurs quand il programme. Certes, pas beaucoup, mais dans un logiciel d'une taille respectable, comme tu le sais, le nombre de bugs devient vite énorme.
 
Je me permets de rappeller la philosophie des langages sus-cités.
C a été conçu (exclusivement) à destination des programmeurs systèmes, à la fin des années 60. A l'époque, on considérait ces programmeurs-là comme les meilleurs programmeurs du monde, et on estimait qu'ils ne faisaient pas vraiment d'erreurs. On pouvait donc leur fournir un langage qui n'offrait que très peu de contrôles automatiques (contrairement à d'autres langages de la même époque, type Pascal ou PL/1). Ce n'est pas moi qui le dit, ce sont les concepteurs du langage C.
 
Le problème, c'est qu'on s'est rendu compte par la suite que les programmeurs système étaient logés à la même enseigne que les autres programmeurs, et qu'ils faisaient autant d'erreurs que les autres. C'est pour cela qu'à la fin des années 70, on a commencé à concevoir des langages au typage plus fort, permettant ainsi plus de contrôles de cohérence automatiques.
C++ et Ada rentrent tous deux dans le cadre de cette philosophie générale.
Par contre, là où ces deux langages se distinguent, c'est que C++ a été conçu à destination des mêmes programmeurs système que C, parce qu'ils ne voulaient pas risquer de perdre en puissance d'expression ou en efficacité d'exécution (et puis ils connaissaient bien C, alors un nouveau langage qui offre une compatibilité ascendante avait beaucoup plus de chances de succès).
Ada, par contre, a poussé la logique de la sécurité de programmation beaucoup plus loin que C++, en posant notamment comme principe fondamental le bannissement de l'implicite (sans avoir pour autant sacrifié ni la puissance d'expression, ni l'efficacité à l'exécution, d'ailleurs ; mais ça, seule l'expérience l'a montré : en effet, même si c'était probable, ce n'était pas totalement évident. A tel point que la plupart des personnes qui ne connaissent Ada que par ouï-dire sont toujours convaincus du contraire !).
 

Harkonnen a écrit :


Personnellement, le '\0' à la fin de la chaine de caractères ne me dérange pas du tout ! Il suffit juste de faire gaffe.


La standardisation de la classe string dans la STL, en C++, prouve précisément le contraire. Si une telle classe a été créée et standardisée, c'est bien parce qu'il est reconnu que les chaînes de caractères à la C sont une source d'erreurs de programmation trop importante pour être acceptable (y compris pour les meilleurs des programmeurs).
Mais pourquoi est-ce si problématique ?
 
D'après les psychologues et autres neuropsychiatres qui se sont penchés sur l'exercice de la programmation, la difficulté principale de la programmation est le nombre d'entités que le cerveau doit avoir à l'esprit à chaque instant. Il est énorme.  
Or comme chacun sait, le nombre d'entités que le cerveau peut enregistrer dans sa mémoire à très court terme est compris entre 5 et 9 (selon que l'on est bon ou pas). Des bugs sont systématiquement introduits lorsque le nombre d'entités à manipuler à un instant donné est au-delà de cette fourchette. Maîtriser la programmation, c'est donc réduire le nombre d'informations que l'on doit avoir à l'esprit à chaque instant, ou, si vous préférez, réduire sa complexité.
Knuth (homme célèbre chez les Grands Programmeurs) disait que le bon programmeur est celui qui a compris que son cerveau était petit, trop petit en tout cas pour pouvoir programmer correctement à coup sûr, et que, par conséquent, c'était celui qui mettait tout en oeuvre pour compenser cette petitesse de cerveau par des outils adaptés pour réduire la complexité intrinsèque de la programmation. Bref, disait Knuth pour résumer sa pensée, le bon programmeur, c'est le programmeur modeste.
 
Or réduire la complexité, c'est précisément le but des langages à typage fort et à haut pouvoir d'abstraction, que tu sembles dénigrer, Harkonnen (je souligne que C n'a jamais prétendu être un langage à typage fort et à haut pouvoir d'abstraction).
 
Pour conclure, je vais réinterpréter les termes de raynaud, qui ne semblent pas totalement dénués de sens (même si ses propos  desservent son propos :o :D ).
Le langage de programmation n'est à mes yeux qu'un outil permettant au programmeur d'exprimer ce qu'il souhaite faire faire à un ordinateur. Malheureusement, les raisons qui conduisent au choix d'un langage de programmation font que le langage choisi n'est quasiment jamais le meilleur (en termes de rapport coût global/gain total). Ces raisons sont parfois historiques (du code existant qu'on ne peut pas jeter), mais c'est bien plus souvent des raisons idéologiques (donc, par définition, mauvaises...  :ange: ).
 
Un sage de mes précepteurs m'a dit un jour : "Religion et programmation tu dissocieras". A lire ce topic, il semble que ce commandement, qui pourtant tombe sous le sens, est connu de bien (trop) peu de personnes...


Message édité par BifaceMcLeOD le 07-01-2003 à 15:33:07
n°281123
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 07-01-2003 à 15:39:37  profilanswer
 

Biface > j'ai toujours adoré ce genre de discours philosophique :love:
Que dirais tu d'être modo ? Je te fais cadeau de mes voix ;)
 
Je voudrais juste éclaircir quelques points de ton remarquable discours (si si, j'le pense), argumenté, avec des exemples, etc... Bref, le genre de discours que nraynaud (ainsi que moi même) devrait prendre en exemple...
 
Je ne dénigre pas les langages sécurisés (même si je les connais assez peu, j'aime bien Java et C#), mais ce que je leur reproche, c'est justement d'être trop sécurisés.
Mets toi à la place d'un étudiant qui aura étudié Java et son garbage collector. Une fois laché dans la nature, que va t'il faire ?
Il ne faut pas se leurrer : la majorité des applications actuelles sont écrites en C++, langage certainement moins sécurisé que Java.
Notre étudiant va donc se mettre au C++, et lorsqu'il constatera que sa grammaire est peu ou prou identique à celle de Java, il va se dire que la sécurisation sera également très proche.
Ce qui va nous donner des parcours de tableau hors limites, des allocations non libérées, etc... Je peux t'assurer que j'ai vu ceci : des étudiants tout frais émoulus, qui forts de leur savoir en Java ont foncé dans le C++ tête baissée. Et ils se sont lamentablement vautrés (et leurs programmes avec).
 
Ce que je veux dire, c'est que quitte à apprendre un langage, je pense qu'il est préférable d'apprendre le moins sécurisé des langages ! Ca obligera l'apprenti programmeur à se bruler, et ça lui donnera de bonnes habitudes avec des langages plus sécurisés. C'est un peu comme si on conseillait à un débutant Java de démarrer avec JBuilder, sans aucune notion de CLASSPATH et autres joyeusetés.
 
Personnellement, jamais je ne conseille de commencer la prog par VB, Java, C# ou autres ! "Tu veux débuter ? OK ! Commence par le C, la sanction est immédiate : tu codes mal => tu plantes !"
 
Après tout, la meilleure façon d'apprendre à nager est-elle de se jeter à l'eau dans le grand bain, ou de marcher dans le petit bain avec bouée, manchons, etc... ? :)
 


---------------
J'ai un string dans l'array (Paris Hilton)
n°281175
nraynaud
lol
Posté le 07-01-2003 à 16:18:08  profilanswer
 

Harkonnen a écrit :


Personnellement, jamais je ne conseille de commencer la prog par VB, Java, C# ou autres ! "Tu veux débuter ? OK ! Commence par le C, la sanction est immédiate : tu codes mal => tu plantes !"


 
C'est faux et c'est ce que je reproche au C, t'as un bug => ça marche (ou marchouille) pendant tes tests qd même et ça plante en prod, chez le client dans des cas complètement tordu 10 ans après la conception. Un _vrai_ langage, un bug ça compile pas ou (malheuresement, on capte pas grand'chose à la compil) ça lève une exception (non trappée à priori) et ça se banane directement au bon moment (enfin aussi tôt que possible).
 
d'autre part, j'ai pas dit que le seul facteur déterminant de la qualité d'un logiciel est son langage de conception, mais c'est un facteur de très grande importance, la précense d'un plan qualité (et du mec qui va contrôler son application) et la compétence des concepteurs en sont 2 autres.
 
Quand à savoir qu'on fait pas ce qu'on veut, c'était légèrement transparent dans mon post : je ne serais pas "frustré" par la connerie humaine si on me faisait pas autant chier au cotidien avec des langages de merde et qu'on me laissait plus de temps pour étudier plus de langages (enfin de paradigmes) et plus finement la qualité.
 
D'autre part, j'ai l'impression d'être le seul avec taz à avoir répondu à ce garçon et ma réponse n'est pas complète, mais les gens préfèrent rebondir sur un truc qui leur plait pas plutôt que de répondre à des gens qui en ont besoin. Ca aussi ça fait partie de la connerie humaine qui m'exaspère. Tant qu'à dévier, autant dévier sur les différent systèmes de gestion de mémoire (et de la sémantique de construction, que ceux qui font uniquement du C ignorent probablement) et les problèmes de types (rapport au cast en sortie de malloc), pas dire des trucs sans intérêts qui de toute façon ne feront changer personne d'avis.
 

n°281183
Taz
bisounours-codeur
Posté le 07-01-2003 à 16:24:06  profilanswer
 

moi je préfère une machine à laver programmer en C plutot qu'un missile américain dirigé par un programme ADA  :pt1cable:

n°281192
nraynaud
lol
Posté le 07-01-2003 à 16:32:03  profilanswer
 

++Taz a écrit :

moi je préfère une machine à laver programmer en C plutot qu'un missile américain dirigé par un programme ADA  :pt1cable:  


surtout codé par des mecs qui savent pas que 0.1 (base 10) n'a pas une représentation finie en base 2 ... (combien déjà ? 50 morts ?).

n°281246
BifaceMcLe​OD
The HighGlandeur
Posté le 07-01-2003 à 17:07:51  profilanswer
 

Vu qu'il ne s'est pas manifesté depuis son premier post, on peut supposer que la réponse qu'il a eue le satisfaisait.
 
Même si bien sûr, on aurait pu ajouter que cela ne suffisait pas à allouer un tableau à 2 dimensions. Ce qui donne, si on corrige cela aussi :

Code :
  1. char** pho2;
  2. int    i;
  3. pho2 = (char**) calloc(5, sizeof(char*));
  4. for (i = 0; i < 5; i++) {
  5.   pho2[i] = (char*) calloc(60, sizeof(char));
  6. }

 
 

Harkonnen a écrit :

Personnellement, jamais je ne conseille de commencer la prog par VB, Java, C# ou autres ! "Tu veux débuter ? OK ! Commence par le C, la sanction est immédiate : tu codes mal => tu plantes !"

Et tu ne sais pas pourquoi...
 
Et on voit que ce n'est pas toi qui les récupère derrière, parce qu'ils n'ont rien compris, ces débutants-là...
 
8 programmeurs sur 10 ne sont pas des programmeurs professionnels, en plus (on ne le leur demande même pas), et pourtant on leur impose d'utiliser C ou C++. A quoi ça sert, de les obliger à s'arracher les cheveux pendant des heures, alors qu'il existe des outils permettant de faire la même chose, mais de manière 10 fois moins pénible ?
 

Harkonnen a écrit :

Après tout, la meilleure façon d'apprendre à nager est-elle de se jeter à l'eau dans le grand bain, ou de marcher dans le petit bain avec bouée, manchons, etc... ? :)


Tu as des enfants !!!  :ouch: A te lire, je ne crois pas !
Regarde bien les maîtres nageurs, tu verras que quand on "jette" les enfants dans le grand bain sans bouée/manchon/..., c'est quand ils ont déjà les techniques de bases de la nage ! C'est véridique, et en l'occurrence, cela s'applique parfaitement à la programmation.
 
Sinon, si tu veux mon avis sur Java, perso, je ne trouve pas ce langage vraiment strict. Il l'est certes plus que C++ (je ne parle même pas de C), mais pour apprendre à programmer, c'est loin d'être le langage le plus approprié. Je reste convaincu que Pascal ou Ada (qui possède tous deux la notion de pointeurs, et qui peuvent être utilisés en mode strictement procédural, par exemple) sont bien meilleurs pour cet usage.
Ce qui compte, ce n'est pas apprendre la syntaxe, c'est apprendre et maîtriser les concepts.
 
Et pour l'avoir observé, le passage à C quand on a appris à programmer en Ada se fait assez facilement, et la qualité des programmes (lisibilité, donc maintenabilité, nombre de bugs, etc) est bien meilleure que chez les programmeurs qui ont commencé par C. Comment tu l'expliques ?

n°281251
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 07-01-2003 à 17:10:29  profilanswer
 

nraynaud a écrit :


D'autre part, j'ai l'impression d'être le seul avec taz à avoir répondu à ce garçon et ma réponse n'est pas complète, mais les gens préfèrent rebondir sur un truc qui leur plait pas plutôt que de répondre à des gens qui en ont besoin. Ca aussi ça fait partie de la connerie humaine qui m'exaspère.


 
Je pense pas qu'il y ait beaucoup de "gens [qui] préfèrent rebondir sur un truc qui leur plait pas", c'est surtout qu'ils réagissent face à l'agressivité de certains propos, c'est tout. Peut-être que ça te fait chier, mais la forme et le fond ne sont pas toujours totalement indissociables. Si t'as pas envie que les cons t'exaspèrent avec des trucs qui ont trait à ta façon de t'exprimer, remets-toi aussi en question au bout d'un moment. Ca n'est pas la première fois que quelqu'un te fait la remarque et ça ne sera pas la dernière si tu persistes [:spamafote]
Ou alors, si tu veux rester dans le sujet à 100% et éviter toute remarque, prends un ton complètement plat et réponds direct à la question. Les petites remarques du style "les neuneux" ou "langage de merde" étaient-elles réellement indispensables dans une réponse technique ?
 

nraynaud a écrit :


 Tant qu'à dévier, autant dévier sur les différent systèmes de gestion de mémoire (et de la sémantique de construction, que ceux qui font uniquement du C ignorent probablement) et les problèmes de types (rapport au cast en sortie de malloc), pas dire des trucs sans intérêts qui de toute façon ne feront changer personne d'avis.


 
C'est pas toi qui parlais d'immobilisme ? :ange:


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°281262
Taz
bisounours-codeur
Posté le 07-01-2003 à 17:13:53  profilanswer
 

(z'etes lourds: je croyais avoir mis un terme à la discussion sur une petit touche d'humour  :( )

n°281265
BifaceMcLe​OD
The HighGlandeur
Posté le 07-01-2003 à 17:15:59  profilanswer
 

Taiche>  :jap:  
 
Harkonnen> Tu l'as, ton modo ! :D
 
Taz> Désolé, mais ton humour, je le trouve douteux. Et limite huile sur le feu, en l'occurrence.
Et puis, t'as pas de bol, la machine à laver en question était programmée en Ada :D (ben oui, un des domaines de prédilection d'Ada, c'est les systèmes embarqués  :whistle: ).


Message édité par BifaceMcLeOD le 07-01-2003 à 17:18:57
n°281269
Taz
bisounours-codeur
Posté le 07-01-2003 à 17:22:06  profilanswer
 

BifaceMcLeOD a écrit :

Désolé, mais ton humour, je le trouve douteux. Et limite huile sur le feu, en l'occurrence.
Et puis, t'as pas de bol, la machine à laver en question était programmée en Ada :D (ben oui, un des domaines de prédilection d'Ada, c'est les systèmes embarqués  :whistle: ).


 
ben nraynaud semble l'avoir bien pris. Sinon il me semble que pour sa part le C se débrouille pas trop mal en embarqué... De toutes façons je m'en fout: faites le langage qui vous satisfait et arrétons de casser les pieds aux autres

n°281276
nraynaud
lol
Posté le 07-01-2003 à 17:31:33  profilanswer
 

BifaceMcLeOD a écrit :

Taiche>  :jap:  
 
Harkonnen> Tu l'as, ton modo ! :D
 
Taz> Désolé, mais ton humour, je le trouve douteux. Et limite huile sur le feu, en l'occurrence.
Et puis, t'as pas de bol, la machine à laver en question était programmée en Ada :D (ben oui, un des domaines de prédilection d'Ada, c'est les systèmes embarqués  :whistle: ).


 
Ouais et ça me gave, on se tappe du vxworks (sur un 68000) en C à l'IUP. Génial pour des cibles qui n'ont pas de portection mémoire ! Le tout alors qu'on a eu des coure de Ada, c'est vraiment "faites ce que je dis, pas ce que je fais" !
 
Je vais me tenter une compilation de GNAT cygwin->palmos pour fêter ça !

n°281298
BifaceMcLe​OD
The HighGlandeur
Posté le 07-01-2003 à 17:40:59  profilanswer
 

Plains-toi ! Au moins tu as commencé par apprendre à exprimer tes algorithmes dans un langage adapté. Certains n'ont même pas ça.
 
Ca ne sert à rien de se plaindre sans arrêt qu'on ne peut pas s'acheter une voiture de luxe quand on a les moyens de s'acheter une petite voiture. Il ne faut pas oublier qu'il y a des gens qui ne peuvent pas s'acheter à manger (autre chose que des patates)... Et c'est encore mieux quand on aide ces gens-là.
 
C'est une métaphore certes, mais elle s'applique à ton cas de programmeur. En clair, au lieu de te plaindre sans arrêt, bouge-toi le c... pour essayer de mettre en place de meilleurs outils. Et si tu ne vois pas comment tu peux faire, c'est que tu n'as pas assez cherché. Et le jour où tu auras réussi, tu te rendras compte que ce que tu as obtenu, c'est surtout des qualités supplémentaires : patience, persévérance, diplomatie (quoique...  :whistle: )
Bref, comme dit le dicton : "Aide-toi, le ciel t'aidera".

n°281321
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-01-2003 à 17:55:23  profilanswer
 

nraynaud a écrit :

je laisse les neuneux répondre au reste,


:heink: c'est pas très convivial ça
 

nraynaud a écrit :

bienvenue dans un langage de merde pas du tout safe, si tu as encore le temps de changer, passe à Ada.


 
pas besoin de comparer le C/C++ à ADA ou à d'autres langages à tout bout de champ, c'est pas le sujet ici...


Message édité par antp le 07-01-2003 à 17:55:34

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°281349
nraynaud
lol
Posté le 07-01-2003 à 18:21:48  profilanswer
 

BifaceMcLeOD a écrit :

En clair, au lieu de te plaindre sans arrêt, bouge-toi le c... pour essayer de mettre en place de meilleurs outils. Et si tu ne vois pas comment tu peux faire, c'est que tu n'as pas assez cherché. Et le jour où tu auras réussi, tu te rendras compte que ce que tu as obtenu, c'est surtout des qualités supplémentaires : patience, persévérance, diplomatie (quoique...  :whistle: )
Bref, comme dit le dicton : "Aide-toi, le ciel t'aidera".


 
Je dois connaitre pas loin de 20 langages, et je les apprends par famille complète maintenant, mais je ne suis pas encore au niveau que je souhaite atteindre, en gros j'essaye déjà de savoir où je fout les pieds avant de tenter quelquechose. D'autre part, j'arrête de tenter d'être explicatif car ça se finit _toujours_  par "t'aimes pas le C car t'es une grosse merde qui sait pas coder" (ou alors que "les vrai codeur font du C safe", y'a qu'à voir la liste des bugs d'apache ou les découvertes dans le noyau linux en fin d'année scolaire quand une université fait passer des tests sémantiques dessus pour s'en convaincre), de même "les GC c'est pour les nazes" (souvent de la part de personnes qui seraient incapables de citer 3 techniques différentes de GC). Donc j'ai arrêté tout travail d'explication (hormis pour les gens currieux qui posent des questions précises) et je tente d'aider les débutant et affichant mon mépris pour un certain état d'esprit ; en glissant éventuellement des trucs qui pourraient éveiller leur curiosité (d'ou souvent des Ada ou smalltalk qui traînent, je suis pas convaincu que les envoyer sur des "IO monads" directement serait hyper fin).
Et je compense mes frustrations (et un certain autisme) à coup de pintes de bière dans les bars (j'ai pas le permis pour ceux que ça inquièterait).  
Quand à changer le monde ... Bertrand Meyer qui a un savoir et une intelligeance qui dépassent à l'aise le double des miens n'a pas réussi.
 
edit : typo


Message édité par nraynaud le 07-01-2003 à 18:34:51
n°281357
tomlameche
Et pourquoi pas ?
Posté le 07-01-2003 à 18:30:42  profilanswer
 

nraynaud a écrit :


Et je compense mes frustrations (et un certain autisme) à coup de pintes de bière dans les bars (j'ai pas le permis pour ceux que ça inquièterait).  


Ben faut peut être voir un peu des vrai gens qui font autre chose que de s'exploser les yeux sur des machines, non ?
 

Citation :

Je dois connaitre pas loin de 20 langages


Ben c'est bien, mais tu devrai faire pareil avec les languages parlé pour rencontrer d'autres gens encore, si tu as un don pour les languages ....
 

Citation :

Quand à changer le monde ... Bertrand Meyer qui a un savoir et une intelligeance qui dépasse à l'aise le double des miens n'a pas réussi.


Juste pour dire et sans vouloir faire fleur bleu, si tu veux changer le monde, c'est pas avec l'info que tu vas arriver à grand chose. Tu lis des bouquins qui parle d'autre choses que d'info et de programmation ?
 
Bref, tu trouve pas que tu prends ton boulot/etudes un peu trop au sérieux là ?  
 :hello:


---------------
Gérez votre collection de BD en ligne ! ---- Electro-jazzy song ---- Dazie Mae - jazzy/bluesy/cabaret et plus si affinité
n°281463
sombresong​e
Posté le 07-01-2003 à 20:02:32  profilanswer
 

Juste une tite remarque ADA c pas plus jeune que C.

n°281464
gilou
Modérateur
Modzilla
Posté le 07-01-2003 à 20:04:37  profilanswer
 

Le trollage "C'est mon langage qui a la plus grosse (feature, bien sur :D)" Ca serait bien que ca s'arrete.
Sinon, je me verrai contraint a moderer.
A+,
PS. On dit "Pissing Contest" en anglais...


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°281465
Taz
bisounours-codeur
Posté le 07-01-2003 à 20:06:00  profilanswer
 

et pi fallait bien quelques codeurs C pour faire le GNAT ...

n°281471
gilou
Modérateur
Modzilla
Posté le 07-01-2003 à 20:25:41  profilanswer
 

++Taz a écrit :

et pi fallait bien quelques codeurs C pour faire le GNAT ...


Bon, c'est fini?
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°281473
Taz
bisounours-codeur
Posté le 07-01-2003 à 20:26:57  profilanswer
 

gilou a écrit :


Bon, c'est fini?
A+,

tu m'en veut ou quoi?

n°281478
gilou
Modérateur
Modzilla
Posté le 07-01-2003 à 20:31:41  profilanswer
 

Non, mais une des regles de ce forum, c'est que les trollages a la "C'est mon langage qu'il est le meilleur" n'y sont pas de mise; et la, ca pollue completement le topic.
A+,


Message édité par gilou le 07-01-2003 à 20:32:01

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°281483
lorill
Posté le 07-01-2003 à 20:34:25  profilanswer
 

gilou a écrit :

Non, mais une des regles de ce forum, c'est que les trollages a la "C'est mon langage qu'il est le meilleur" n'y sont pas de mise; et la, ca pollue completement le topic.
A+,


ouais, enfin la c'est depuis le 3eme message qu'il est parti en couille ce topic  [:sinclaire]

n°281489
gilou
Modérateur
Modzilla
Posté le 07-01-2003 à 20:37:36  profilanswer
 

lorill a écrit :


ouais, enfin la c'est depuis le 3eme message qu'il est parti en couille ce topic  [:sinclaire]  


Suffit de m'envoyer un PM et j'interviens. Il est extremement rare que je ne passe pas une fois par jour sur le forum.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°281494
Taz
bisounours-codeur
Posté le 07-01-2003 à 20:40:53  profilanswer
 

ben il s'est dit pas mal de choses interessantes: chui content qu'il est pas été fermé

n°281497
darklord
You're welcome
Posté le 07-01-2003 à 20:41:43  profilanswer
 

[:blueflag]


---------------
Just because you feel good does not make you right
n°281499
samuelp
Posté le 07-01-2003 à 20:42:32  profilanswer
 

++Taz a écrit :

moi je préfère une machine à laver programmer en C plutot qu'un missile américain dirigé par un programme ADA  :pt1cable:  


 
Ada c clair, limpide et facile a reutiliser
 
Le C c surtout pour des applications qui demandent de la haute performance
 
Sur ce constat j'en conclu qu'on utilise un langage selon la situation

n°281500
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-01-2003 à 20:42:59  profilanswer
 

lorill a écrit :


ouais, enfin la c'est depuis le 3eme message qu'il est parti en couille ce topic  [:sinclaire]  


 

gilou a écrit :


Suffit de m'envoyer un PM et j'interviens. Il est extremement rare que je ne passe pas une fois par jour sur le forum.
A+,


 
C'est aussi pour ça qu'il y a l'élection d'un modo en plus : il y a de plus en plus de messages et moi je lis de moins en moins de topics :D
Surtout les topics C/C++, VB & Java...


Message édité par antp le 07-01-2003 à 20:43:41
n°281503
Taz
bisounours-codeur
Posté le 07-01-2003 à 20:44:22  profilanswer
 

samuelp a écrit :


Sur ce constat j'en conclu qu'on utilise un langage selon la situation

:jap:

n°281517
schnapsman​n
Zaford Beeblefect
Posté le 07-01-2003 à 20:59:43  profilanswer
 

gilou a écrit :

Non, mais une des regles de ce forum, c'est que les trollages a la " C'est mon langage qu'il est le meilleur" n'y sont pas de mise; et la, ca pollue completement le topic.
A+,


 
1) Ca sent l'objectivité ce genre de post  :lol:  
 
 
2) personne n'a vu pourquoi le 1er bout de code était faux en premier lieu; en gardant ce qu'il veut faire, à savoir allouer dynamiquement de la mémoire pour un tableau à double entrée, en allouant séparement chaque ligne (ou chaque colonne comme il vous sierra). Il commence par faire ceci:
 

Code :
  1. *pho2 = ....


cad une indirection sur un pointeur non initialisé. La zone mémoire pointée est donc indéterminée. Il en fait inverser les deux lignes et c'est correct

Code :
  1. pho2=  calloc(60,sizeof(*pho2));
  2. *pho2 =  calloc(5,sizeof(char));

 
Encore que là seulement la 1ere ligne de la matrice est allouée...


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°281702
Musaran
Cerveaulté
Posté le 08-01-2003 à 04:01:07  profilanswer
 

Ça a été rectifié dès les premières propositions quand même...
 
nraynaud, si tu connais 20 langages c'est très bien, c'est une bonne ouverture d'esprit. Je n'en suis pas encore là :sweat:.
Mais je trouves que tu es trop académique puriste.
Est-ce que tu codes beaucoup en pratique ?
 
Bah voilà, j'ai rien d'autre à ajouter à ce topic passionant, mais comme ça on est tous là :D.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  j'sais pas mallocer en C???

 

Sujets relatifs
je sais que je vais me faire conspuer mais bon...[JAVA] Je voudrais faire un chat en P2P mais je sais pas comment faire
doctype, namespace, encodage, version ! Comment je sais moi ! ! !µJE ne sais pas comment faire ca .......
[php} comment on sais que qqun se deconnect de notre siteJe sais pas quoi faire comme programme !!
J'ai envie de coder, mais je ne sais pas quoi[PHP] Cool je sais faire une boucle... euh... oui mais plus simple non
Access : oui je sais, c'est pas bien mais...[java][servlet] Pb de compil (je sais, c'est con)
Plus de sujets relatifs à : j'sais pas mallocer en C???


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR