Stack Overflow [C] - C - Programmation
Marsh Posté le 17-10-2008 à 14:12:04
crée le avec un appel à malloc au lieu de le mettre sur ta pile
Marsh Posté le 17-10-2008 à 14:17:28
ouais alors j'ai jamais trop fait les mallocs pour les tabs à deux dimensions.
Ca va ça :
int *tab=malloc(validPacketNumber*4*sizeof(int));
for(...){
tab[4*i+0]=id;
tab[4*i+1]=type;
tab[4*i+2]=flag;
tab[4*i+3]=length;
}
je 'occupe de mon tableau
puis free(tab) à la fin
du coup on a un tab à une seule dimension mainteannt, mais c'est pas bien génant.
je peux quand meme garder un tab à deux dimensions en mallocant ?
Marsh Posté le 17-10-2008 à 14:25:03
J'ai tendance à penser qu'un groupe de 4 entiers ne devrait pas trainer dans la nature, tu as probablement un moyen logique de les regrouper dans ta structure. Du coup, la création de ton tableau sera plus logique.
sinon, oui, tu peux faire un tableau à deux dimensions, mais ce n'est pas nécessairement une bonne idée, vu que ca impliquera de faire une indirection supplémentaire (tableau d'int * pointant eux-mêmes sur des tableaux de 4 entiers)
Marsh Posté le 17-10-2008 à 14:50:35
ok j'ai fait un tableau à deux dimensions. En fait après je dois le passer à Java via JNI, qui attend un tableau à deux dimensions. Mais ca marche nickel maintenant, merci !
Marsh Posté le 17-10-2008 à 14:05:45
Salut
J'ai le bout de coude suivant :
Pas de prob de compilation.
A l'exécution, le "ok" s'affiche bien, mais pas le pk1.
Jai une erreur :
ECEPTION_STACK_OVERFLOW
En fait je soupconne validPacketsNumber d'être trop grand. C ne peut pas créer un tableau aussi grand ?
Dans certains cas, avec des valeurs petites pour validPacketsNumber ca marche nickel (genre validPacketsNumber=6000)
Mais là j'ai validPacketsNumber=42624 et ca marche pô
Des idées pour palier au problème ?