Tableau1 -> Tableau2 - C - Programmation
Marsh Posté le 18-02-2007 à 15:37:20
timz a écrit : Je souhaites réaliser un tableau de deux dimensions, qui serait rempli par un tableau temporaire de 10 octets. |
Créer dynamiquement un tableau linéaire de NB_LIN (20) tableaux de SZ_LIN (10) unsigned char (il n'y a pas d'octets en C. C'est une notion 'flux' ou 'réseau', pas mémoire interne)
Code :
|
Ensuite 2 méthodes. Soit calculer l'adresse des éléments :
Code :
|
soit intialiser un tableau de pointeur avec les adresses des 20 tableau de char
Code :
|
ce qui permet ensuite un accès direct
Code :
|
Marsh Posté le 18-02-2007 à 16:16:45
timz a écrit : Bonjour à tous, |
La méthode d'Emmanuel me semble "compliquée" pour quelqu'un qui débute en C. Moi, je ferais plus simple. c.a.d. définir un simple tableau de [20][10]
Code :
|
Là, t'es certain que ton tableau est contiguë en mémoire, c.a.d. que toutes les cases se suivent. Il en résulte que si tu remplis "5" octets à partir de "tab[5][8]" (par exemple), alors le 1er octet ira dans tab[5][8], le second ira dans tab[5][9], le 3° ira dans tab[6][0], le 4° ira dans tab[6][1] et le 5° ira dans tab[6][2].
Ensuite, il te suffit d'utiliser "memcpy()" pour copier à chaque "debut de ligne" ton tableau temporaire.
Ex: Imaginons que tes 20 tableaux temporaires se nomment "tmp1", "tmp2", "tmp3", etc..., alors il te suffit d'écrire
Code :
|
Marsh Posté le 24-02-2007 à 14:17:17
Cela marche très bien le memcpy! Merci
J'ai une autre question, ma matrice est pleine, je voudrais la réinitialiser entièrement, c'est à dire que tout les valeurs de la matrice soit à 0x00 par exemple.
Désolé d'être si "chiant".
Merci
Marsh Posté le 24-02-2007 à 17:11:58
timz a écrit : J'ai une autre question, ma matrice est pleine, je voudrais la réinitialiser entièrement, c'est à dire que tout les valeurs de la matrice soit à 0x00 par exemple. |
Ce qui est 'chiant' c'est de répondre à des questions basiques... memset()...
Tu n'as donc pas de livre de C ? Tu codes au hasard ?
Marsh Posté le 24-02-2007 à 19:09:51
timz a écrit : Cela marche très bien le memcpy! Merci |
En général, toutes les fonctions offertes font ce qu'elles sont sensées faire autrement dit toutes "marchent" très bien !!!
timz a écrit : J'ai une autre question, ma matrice est pleine |
Pleine ??? Une variable (ou un tableau de variables) ne sont jamais pleines (ni jamais vides). Toute variable contient toujours une valeur !!!
timz a écrit : je voudrais la réinitialiser entièrement, c'est à dire que tout les valeurs de la matrice soit à 0x00 par exemple. |
Bon, Emmanuel t'a répondu. Avant de venir demander qu'on te la tienne, essaye un peu de t'assumer. Regarde le "man", va sur google. Le pire, c'est que même s'il n'avait pas existé de fonction qui réponde à ton besoin, tu aurais pu y répondre tout seul avec
(et ceci dans l'ordre que tu préfères)
Marsh Posté le 18-02-2007 à 15:08:24
Bonjour à tous,
Je souhaites réaliser un tableau de deux dimensions, qui serait rempli par un tableau temporaire de 10 octets.
Mais je voudrais, que les 10 octets se suivent (c'est à dire réaliser un tableau de 200 octets par exemple pour y mettre 20 tableau temporaire). Je ne sais pas du tout comment réaliser ceci. J'ai beau regarder des cours en C sur les tableaux je ne comprend pas. Si quelqu'un pourrait me mettre sur la piste cela serait sympa
Merci de m'avoir lu.