[c99] VLA et appel de fonction
Bonjour,
Je m'essaye aux tableaux dynamiques avec le code suivant, mais j'ai visiblement un soucis que je ne trouve pas.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
/* Pleins de choses avant */
int nodes[get_nb()][get_node_number(0)];
memset (nodes,
0,
get_nb() * get_node_number(0) * sizeof (int));
/* DEBUGSTR1 ("Size : %lu", sizeof (nodes_if_lists)); */
/* nodes_if_lists[1][1] = 12; */
/* DEBUGSTR1 ("content : %d", nodes_if_lists[1][1]); */
save_nodes (nodes);
/* Pleins de choses apres */ |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| /**
* Save identifiers of all nodes
*
*@param nodes : allocated list in which function will store data.
*
*@return void
*
*/
void save_nodes (int ** nodes)
{
int i;
int j;
if (nodes != NULL)
{
for (i = 0 ; i < get_nb() ; i++)
{
for (j = 0 ; j < get_node_number(0) ; j++)
{
nodes_if_list[i][j] =1;
}
}
}
return;
} |
Et voici le soucis que j'ai a la compilation, avec gcc :
Code:
warning: passing arg 1 of 'save_nodes' from incompatible pointer type
Comme vous le voyez avec le code commenté, lorsque j'écris directement dans mon tableau, tout fonctionne parfaitement. Le soucis ne survient que si j'appelle une fonction avec le tableau en paramètre.
Est-ce que quelqu'un voit ou se situe mon problème, et saurait en plus me l'expliquer ?