Accueil > Forum > > > > Tableau à 2 dimension + fonction
Tableau à 2 dimension + fonction
dimanche 17 juin 2012 à 18:42:07 |
Tableau à 2 dimension + fonction

GrosKiff1994
|
Bonsoir,
Je débute en programmation, et je galère avec un simple tableau à 2 dimensions à envoyer dans une fonction pour le mettre à 0.
Code C/C++ :
#include <iostream>
using namespace std;
void Clear(int *p)
{
int i = 0;
int j;
for (i=0; i<8; i++)
{
j = 0;
for (j=0; j<8; j++)
{
p[i][j] = 0;
}
}
}
void DrawScreen();
int main()
{
cout << "PACMAN TEST" << endl;
int positionX = 3;
int positionY = 3;
int tableau[8][8];
Clear(tableau);
while(1)
{
DrawScreen();
}
return 0;
}
l'erreur : |14|error: invalid types 'int[int]' for array subscript|
C'est sans doute une histoire de pointeur, mais je ne vois pas où est le problème.
Merci
|
|
lundi 18 juin 2012 à 10:21:52 |
Re : Tableau à 2 dimension + fonction

CptPingu
|
Réponse acceptée !
Bonjour.
Évite les "using namespace", voir: [ Lien ]
Ensuite, c'est normal. Un int* n'est pas un int[8][8] ! Ce n'est pas la même chose. On peut convertir un int[] en int*, mais on ne peut pas convertir un int[][] en int* ou int**. Il te faut soit utiliser un tableau à double dimension en int** ou alors spécifier que la fonction prend du int[8][8].
Ex:
Code C/C++ :
#include <iostream>
void clear(int p[8][8])
{
for (int i = 0; i < 8; ++i)
for (int j = 0; j < 8; ++j)
p[i][j] = 0;
}
void DrawScreen();
int main()
{
std::cout << "PACMAN TEST" << std::endl;
int tableau[8][8];
clear(tableau);
while(1)
DrawScreen();
return 0;
}
Néanmoins, je te conseil d'oublier les tableaux comme tu le fais et d'utiliser un std::vector ! Bien plus pratique et puissant à utiliser.
________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
|
|
lundi 18 juin 2012 à 12:00:53 |
Re : Tableau à 2 dimension + fonction

BruNews
|
Réponse acceptée !
Si perfs requises (cas typique d'un jeu):
- On garde les tableaux.
- On vire les boucles imbriquées.
- Simple boucle s'inlinera impec.
inline void clear(int *p, DWORD n)
{
do {
p[n - 1] = 0;
} while(--n);
}
int tableau[8][8];
clear((int*) tableau, 8*8);
ciao...
BruNews, MVP VC++
|
|
lundi 18 juin 2012 à 13:13:37 |
Re : Tableau à 2 dimension + fonction

yann_lo_san
|
Salut,
après la très bonne réponse de BruNews,
on pourrait aussi imaginer avoir des tableaux de différents types de numériques (short, float ect...)
Donc la même non typée et sans boucle :
Code C/C++ : inline void clear(void *p, DWORD nbElem, int sizeOfTypeElem)
{
memset(p, 0, nbElem * sizeOfTypeElem);
}
L'appel :
Code C/C++ : float tableau[8][8];
clear(tableau, 8*8, sizeof(float));
bye...
|
|
lundi 18 juin 2012 à 15:51:50 |
Re : Tableau à 2 dimension + fonction

GrosKiff1994
|
Merci pour ces réponses !
Cependant yann_lo_san (cool, un autre Yann sur Terre !), je vais tenter de maitriser les bases avant de taper dans du memset, même si je crois comprendre.
Merci et bonne semaine
|
|
Cette discussion est classée dans : fonction, int, tableau, dimension, for
Répondre à ce message
Sujets en rapport avec ce message
passage de tableau à 3 dimensions en paramètre à une fonction [ par snake57 ]
Bonjour à tous, J'ai un tableau à 3 dimensions que je veux afficher à partir d'une fonction. J'ai donc créé une fonction mais celle-ci affiche...n'im
position POINT et tableau 2 dimension [ par sokotanic ]
bonjour à t.l.m. je souhaite recuperer la position x et y de la souris et la mettre dans un tableau 2 dimensions et afficher cette position dans un p
dimension constante d'un tableau [ par Skyffer3 ]
Bonjour à tous, [^^happy13] Je me pose une question suite à une affirmation de mon livre pour apprendre le C++ : "La dimension d'un tableau ne peut ê
creation de plusieur tableau [ par foxwar ]
Bonjour, j'aimerai cree un programme ki permet de cree plusieur tableau du different taille et les afficher g ecirt ce programme mai je c pa ce k'il
Exercice sur Pointeurs, classes, héritage... [ par snoozriton ]
Bonjour à tous, étant en train d'étudier le C++, j'ai quelques soucis avec un exercice. C'est un classique dont je vous donne l'énoncé : [b]1. Défini
Allocation dynamique tableau 2D : erreur de seg [ par noname001 ]
Bonjour à tous, [^^happy13] j'aimerais faire appel à vos lumières concernant deux codes. Ils ont tous les deux pour but de créer un tableau 2D dynami
problème avec l'initialision d'un tableau [ par khen ]
Bonjour,voila j'ai un petite problème avec l'initialisation de mon tableau , je vous explique le problèmeon a un tableau de 3 dimension appelé tab et
Tableau 2 dimension en fonction [ par acidjackproject ]
Bonjour, j'aimerai pas un tableau à 2 dimension en paramètre sans pointeurs. Quand je le fais (comme suit), il m'affiche "error:array type has incompl
Fonction qui utilise un int* externe pour créer un tableau [ par tibob51 ]
Bonjour je voudrai savoir si il est possible qu'une fonction recoive un pointeur d'entier,créé un tableau dynamiquement puis l'initialise,afin de le r
fonction min max [ par devamos ]
bonjour,j'aimerais des corrections,si vous pouvez m'aider j'ai ecri ces instructions en devc++,,, c'est une fonction qui cherche le max et le min dans
Livres en rapport
|
Derniers Blogs
VMMAP EN MODE INSTRUMENTATION SUR SYSTèME 64BIT : ATTENTION à LA PLATEFORME CIBLE DU BUILD .NETVMMAP EN MODE INSTRUMENTATION SUR SYSTèME 64BIT : ATTENTION à LA PLATEFORME CIBLE DU BUILD .NET par coq
Si vous tentez d'utiliser VMMap en mode instrumentation* vous avez peut-être rencontré une erreur relativement peu explicite au lancement du profiling : Unable to launch application: "E:\Temp\ApplicationToProfile\ApplicationToProfile\bi...
Cliquez pour lire la suite de l'article par coq ETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 0ETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 0 par Philess
L'extensibilité du Team Web Access
Le Web Access (site d'équipe) de Team Foundation Server a été complètement réécrit dans la version 2012 avec pas moins de 400.000 lignes de JavaScript. Ce nouveau modèle a été pensé pour offrir de grandes...
Cliquez pour lire la suite de l'article par Philess SIMULER FACILEMENT L'ENVOI DE MAILSIMULER FACILEMENT L'ENVOI DE MAIL par JeremyJeanson
il m'a été demandé, à plusieurs reprises, comment je faisais pour simuler l'envoi de mail lors de mes démos de Workflow Foundation. Ma solution est plutôt simple : j'utilise la configuration par défaut du SmtpClient et j'oriente les mails vers un dossier ...
Cliquez pour lire la suite de l'article par JeremyJeanson VOTEZ POUR LE TOP 10 DES INFLUENCEURS SHAREPOINT FRANCOPHONES !VOTEZ POUR LE TOP 10 DES INFLUENCEURS SHAREPOINT FRANCOPHONES ! par Patrick Guimonet
Si ce n'est déjà fait (comme plus de 600 personnes déjà), il est encore temps de voter pour le concours TOP 10 des influenceurs SharePoint francophones ! Il est organisé par harmon.ie et accessible ici : http://harmon.ie/top-...
Cliquez pour lire la suite de l'article par Patrick Guimonet
Forum
MéMORY EN C++MéMORY EN C++ par C6Dj
Cliquez pour lire la suite par C6Dj
Logiciels
Easy-Planning (4.5.0.11)EASY-PLANNING (4.5.0.11)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté a... Cliquez pour télécharger Easy-Planning CVEasy (3.1.0.51)CVEASY (3.1.0.51)PHMSD-CVEasy est un logiciel d'aide à la rédaction de CV d'une simplicité déconcertante.
PHMSD-C... Cliquez pour télécharger CVEasy LettresFaciles 2011 (8.6.0.31)LETTRESFACILES 2011 (8.6.0.31)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011 sDEVIS-FACTURES vlPRO (8.4.2.62)SDEVIS-FACTURES VLPRO (8.4.2.62)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO Devis-Factures PHMSD (2.1.0.11)DEVIS-FACTURES PHMSD (2.1.0.11)Configuration minimale
Nécessite Windows™ 2000, XP, Windows 7, 8, Vista (Service Pack à... Cliquez pour télécharger Devis-Factures PHMSD
|