Des tableaux et des indexes (ou l’inverse …)

J’ai appris un fun fact avec le C en parcourant Stack Overflow aujourd’hui 🙂

En général pour parcourir un tableau, par exemple un tableau de caractères:

[cci lang= »c »]char *toto[/cci]

un index commençant à 0 en C, on fait généralement toto[0] pour accéder au premier élément, toto[1] pour accéder au second, etc…

Et que se passe-t-il lorsqu’on essaye d’écrire par exemple 5[toto] ?

Et bien ça fait exactement la même chose que lorsqu’on écrit toto[5] (on accède à la sixième case du tableau), pour une raison simple : pour le compilateur, l’opération « a[b] » pourrait se traduire par  » déréférence l’adresse a (un tableau n’est jamais qu’une suite d’octets réservée en mémoire, l’adresse du tableau étant de fait l’adresse de la première case), puis avance de b cases ». Autrement dit :

[cci lang= »c »]*(a + b)[/cci]

(en C on déréférence avec l’opérateur *)

Et, attention mathématiques niveau CP 🙂 L’addition étant commutative, l’expression « a+b » égale « b+a ».

Ainsi, d’une manière un peu surprenante mais pourtant totalement logique, la syntaxe 5[toto] fonctionne parfaitement !

Le C ne cessera jamais de m’étonner … 🙂

Les Chroniques du Métal Hurlant — deuxième partie

« C’est le dernier fragment de ce qui fut un jour une planète vivante.

Menée à la destruction par la folie de ses habitants, ce qu’il en reste est condamné à errer à jamais au travers de l’espace et du temps, hurlant sa peine et son désespoir.

Dans la légende et dans les faits, on l’appelle…

le Métal Hurlant.»

METAL HURLANT CHRONICLES

Hello,

voici (enfin…) mon retour concernant les trois derniers épisodes de la première saison de Métal Hurlant Chronicles ! 🙂

Au départ je comptais le poster au moment de leur première diffusion sur France 4, puis je profite de leur actuelle re-diffusion sur Nolife pour finalement revenir dessus.

Si vous ne l’avez pas encore lu, je vous conseille la lecture de l’article de Gaby sur les trois premiers.

Pour les feignants et les curieux qui seraient ici par hasard, resituons un peu…

Continuer la lecture de Les Chroniques du Métal Hurlant — deuxième partie

Git — « Poussez madame ! »

Un très court billet pour expliquer, avant que je n’oublie !

Pour un projet perso, j’utilise actuellement le gestionnaire de versions Git (de manière générale aussi, d’ailleurs). Mais je veux que quand je pousse (push) une modification, cela la transmette non seulement sur un dépôt en local, mais également sur un dépôt extérieur type Bitbucket ou GitHub… Un push sur de multiples dépôts d’un seul coup, quoi.

« There’s more than one way to do it » .

Ceci étant dit, voici une méthode comme une autre (que j’utilise). Elle consiste à modifier le fichier de configuration du dépot (racine/du/dépôt/.git/config), et d’ajouter une branche remote ciblant les URLs de tous les dépôts voulus (ici très originalement appelée « all ») :

[remote "all"]
url = my/local/repo.git
url = git@bitbucket.org:my/bitbucket.git

etc...

Ensuite quand on fait un push, il suffit de faire « git push all » et ça pousse les modifications sur toutes les remotes concernées !

Joie ! 🙂

{C++} — Mémo pour avoir la méthode afin de pouvoir être méthodique sur les pointeurs sur méthode

Dès qu’en C++ je dois faire des pointeurs sur fonction membre (ou méthode) d’une classe c’est toujours la même chose : je ne me souviens jamais de l’enfer syntaxique que constitue la déclaration, l’assignation, et l’utilisation d’un pointeur sur fonction membre ! >:(

Panda essayant de faire des pointeurs sur fonction membre
Panda essayant de faire des pointeurs sur fonction membre

Continuer la lecture de {C++} — Mémo pour avoir la méthode afin de pouvoir être méthodique sur les pointeurs sur méthode

Xenoblade Chronicles — De bien belles Chroniques

xenoblade image
Illustration boîte

 

Ce blog n’est pas vraiment destiné aux tests de jeux vidéo à la base, mais aujourd’hui, j’ai envie de vous parler d’un jeu qui, malgré son succès critique et public, est passé relativement inaperçu (peut-être dû à sa sortie sur Wii) : Xenoblade Chronicles, car ce dernier m’a vraiment mis une grosse claque au cours des cent (!) et quelques heures de jeu que j’ai pu y passer.

Je continue donc la suite des articles sur des « Chroniques », après celles de Métal Hurlant par Gaby… 🙂

Continuer la lecture de Xenoblade Chronicles — De bien belles Chroniques

Programming Comedy : « Wat ? »

Je repost ici une vidéo que j’ai eu un peu de mal à retrouver, n’ayant pas retenu le nom de l’intervenant la première fois que je l’ai vue : il s’agit d’un lightning talk animé par Gary Bernhardt (de www.destroyallsoftware.com), ayant pour sujet certaines bizarreries plutôts cocasses présentes dans certains langages (ici Ruby et JavaScript).

Je trouve cette vidéo vraiment hilarante (comme le public, visiblement), surtout la fin 🙂 (attention c’est en anglais non sous-titré…)

 

Batman Jesus
Watman

 

 

Man vs. Gnome 3 — Deuxième chapitre

man vs gnome 3
Le retour !

Hello à tous !

Presque deux mois après la première partie, voici la suite de mon retour utilisateur de l’interface Gnome 3 sous Debian ! 🙂

Pour info, en fait, depuis un mois, mon interface s’est vraiment « stabilisée », elle n’a pas subi de changement majeur. Mais j’ai encore une petite liste de choses qui changent dans Gnome 3 par rapport à Gnome 2… et quelques autres remarques bien entendu.

Continuer la lecture de Man vs. Gnome 3 — Deuxième chapitre

La culture est plurielle