IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Probléme d'alignements de données


Sujet :

C

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 94
    Par défaut Probléme d'alignements de données
    bonjour à tous et à toutes ,


    j'ai des erreurs dans un projet en C qui m'affiche des erreurs à la compilation dont voici l'erreur pour ceux qui comprennet anglais.

    C C++ Word Alignement :
    http://www.cs.umd.edu/class/sum2003/...a/aligned.html



    le Tableau de données est passer en aruguments à la fonction Appliquer , mais suite à de probléme d'alignement de données dans la mémoire j'ai toujours ce type de message

    fatal error at line 263 it's not a Word Aligned .
    incorrectly aligned pointer (word alignment expected)


    Si je change de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     (&donnee[i+9], var1,var2);
    A
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     (&donnee[0x20]+i+9, var1,var2);
    Aucune erreur de Word Aligned mais le résultat est faux .

    le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    int fonction ( byte *var1 , byte var2)
     
    {
     
    byte donnee [0x20]={
    0xEB, 0x37, 0x8B, 0x45, 0xFC, 0x8B, 0x00, 0x40, 0x8B, 0x15, 0xE4, 0x73, 0x54, 0x00, 0x0F, 0xB7, 0x92, 0xD4, 0x19, 0x00, 0x00, 0x3B, 0xC2, 0x7E, 0x61, 0xA1, 0x74, 0x7C, 0x54, 0x00, 0xE8, 0x4A, 
    };
     
     
     
    // on apelle la fonction appliquer
     
    appliquer(&donnee[i+9], var1,var2);
    memcpy(&donnee[i+20],0x20);
     
     
     
    return 0;
     
     
     
    }


    j'ai des erreurs de Word Aligned dans ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     (&donnee[i + 9], var1,var2);
    Par contre si je change la ligne à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     (&donnee[0x20]+ i + 9, var1,var2);
    Ceci n'affiche pas d'erreurs mais le résultat afficher est incorrect à l'ecran .


    Merci de vos différents conseils conçernant ce probléme .

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Jao,

    Le nom d'un tableau est l'adresse de son 1er élément, donc le & est de trop dans l'appel des fonctions appliquer et memcpy.

    Pour memcpy, es-tu sûr que c'est bien ça que tu veux faire ?

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 94
    Par défaut
    Citation Envoyé par droggo Voir le message
    Jao,

    Le nom d'un tableau est l'adresse de son 1er élément, donc le & est de trop dans l'appel des fonctions appliquer et memcpy.

    Pour memcpy, es-tu sûr que c'est bien ça que tu veux faire ?
    salut droggo

    j'ai enlever l'opérateur d'adressage et d'indiréction mais le résultat est faux à l'ecran .

    Pour memcpy, es-tu sûr que c'est bien ça que tu veux faire ?
    oui Memory Copy (memcpy).
    memcpy = Copy block of memory (function)

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Mae,
    Citation Envoyé par Marley_T Voir le message
    Pour memcpy, es-tu sûr que c'est bien ça que tu veux faire ?
    oui Memory Copy (memcpy).
    memcpy = Copy block of memory (function)
    Le problème n'est pas que tu utilises cette fonction, mais les paramètres que tu utilises pour l'appeler, qui d'ailleurs ne correspondent pas à la déclaration de la fonction (à moins que ce soit une de tes fonctions personnelles, auquel cas il faut éviter de lui donner le nom d'une fonction standard).

  5. #5
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Attention, la fonction memcpy de la librairie C attend 3 paramètres, voir ici : http://www.linux-kheops.com/doc/man/.../memcpy.3.html.
    Ou alors comme le dit droggo, c'est une fonction à toi et à ce moment là, le nom est très mal choisi (risque de collision avec la librairie C et surtout risque d'induire le lecteur en erreur) et il faut le changer.

    D'autre part, ton problème provient de l'appel à la fonction appliquer(). Quel est sont prototype ? Si le premier paramètre appelé par cette fonction est un pointeur sur 2 ou 4 octets (short, long, int, ...), c'est sûr que tu as un problème d'allignement car l'adresse d'un short ou int ne doit pas être impaire.

    C'est pour cela que "(&donnee[i + 20], var1,var2);" marche bien car c'est pair alors que "(&donnee[i + 9], var1,var2);" ne marche pas car c'est impair.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  6. #6
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par droggo Voir le message
    Le nom d'un tableau est l'adresse de son 1er élément, donc le & est de trop dans l'appel des fonctions appliquer et memcpy.
    Non le & est correct. En effet il n'utilise pas &donnee mais &donnee[i+20], il prends donc l'adresse de 20+i ème élément (ce qui est équivalent à donnee+i+20)

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 94
    Par défaut
    Citation Envoyé par ram_0000 Voir le message
    Attention, la fonction memcpy de la librairie C attend 3 paramètres, voir ici : http://www.linux-kheops.com/doc/man/.../memcpy.3.html.
    Ou alors comme le dit droggo, c'est une fonction à toi et à ce moment là, le nom est très mal choisi (risque de collision avec la librairie C et surtout risque d'induire le lecteur en erreur) et il faut le changer.

    D'autre part, ton problème provient de l'appel à la fonction appliquer(). Quel est sont prototype ? Si le premier paramètre appelé par cette fonction est un pointeur sur 2 ou 4 octets (short, long, int, ...), c'est sûr que tu as un problème d'allignement car l'adresse d'un short ou int ne doit pas être impaire.

    C'est pour cela que "(&donnee[i + 20], var1,var2);" marche bien car c'est pair alors que "(&donnee[i + 9], var1,var2);" ne marche pas car c'est impair.


    salut ram_0000

    La fonction Appliquer () en effet contient la variable donnee aussi qui est déclarer en tant que unsigned char *donnee .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    int appliquer ( unsigned char * donner )
    {
     
    /*  Cors de la focntion  */
     
    }

    Ensuite lors de l'appel de la fonction Appliquer dans une autre on utilise
    l'opérateur d'adressage '&'.



    le probléme principale est la l'alignement de données en mémoire dans le PC
    je n'utlise pas d'autres focntions personnels car le code est trés simple d'utilisation .

    Je souhaite parcourir de la tableau avec une boule ensuite à partir de l'Index avancer de 9 OCTETS le code suivant afficher des erreurs .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (&donnee[i+9], var1,var2);
    Par contre lorsque je mets la taille du tab qui est 0x20 ceci passe sans erreur mais le résultat est faux .


    Donc , soit un résultat faux et sans erreurs de Word Alligned .
    Soit une erreur de incorrectly aligned pointer (word alignment expected)

    Ce code passe sans erreur mais résultat = 0;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Appliquer(&donnee[0x20]+i+9, var1,var2);
    l'algorithme qui doit étre utiliser et afficher le BON résultat est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (&donnee[i+9], var1,var2);
    mais contient des erreurs d'allignement de données .

  8. #8
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    tu peux donner le code de la fonction Appliquer() car alors, il y a un problème dedans.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  9. #9
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 94
    Par défaut
    Citation Envoyé par gl Voir le message
    Non le & est correct. En effet il n'utilise pas &donnee mais &donnee[i+20], il prends donc l'adresse de 20+i ème élément (ce qui est équivalent à donnee+i+20)

    salut gl

    Tout à fait gl ,mais je prends le 9 éme la_foncntion(&donnee[i+9]).
    0x20 c'est la taille du tableau

    l'algorithme qui doit étre utiliser est (&donnee[i+9],var1,var2);
    Mais le probléme j'ai depuis hier soir une erreur qui m'empéche de voir le résultat obtenu à l'ecran avec une erreur de word alignment expected.

    Par contre ce code (&donnee[0x20]+i+9 ); passe sans aucune erreur mais le résultat est faux .


    le code qui affiche le bon résultat est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    i=0;
     
    while(i < 5)
    	{
    	switch (donnee[i])
    	{
    	case :0		
              {
    	Appliquer(&donnee[i+9]); 		
    		}

    Mais y'a une erreur de Word Alignement .

    Par contre ce code passe sans probléme MAIS résultat = faux .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     
    i=0;
     
    while(i < 5)
    	{
    			switch (donnee[i])
    			{
    			case :0		
     
    			{
    		Appliquer(&donnee[0x20]+i+9); //  fonction appliquer
                   // Appliquer(donnee+i+9) // pareil résultat faux MAIS pas d'erreur
                      de Word Alignement .
                            }

  10. #10
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Jae,
    Citation Envoyé par gl Voir le message
    Non le & est correct. En effet il n'utilise pas &donnee mais &donnee[i+20], il prends donc l'adresse de 20+i ème élément (ce qui est équivalent à donnee+i+20)
    Oui, j'ai lu un peu trop vite.

    Citation Envoyé par Marley_T Voir le message
    Par contre ce code (&donnee[0x20]+i+9 ); passe sans aucune erreur mais le résultat est faux .
    Tu prends une adresse qui est déjà hors de ton tableau, et tu lui ajoutes encore i+9.
    Où penses-tu être dans la mémoire ?

    Que ça compile sans erreur ne signifie rien : le compilateur attend une adresse, tu lui en donne une...

  11. #11
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 94
    Par défaut
    Citation Envoyé par ram_0000 Voir le message
    tu peux donner le code de la fonction Appliquer() car alors, il y a un problème dedans.
    Bien sur .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    void Appliquer(unsigned char *donnee, unsigned char *value1, int *taille)
    {
    	unsigned char tmp1[10], tmp2[10];
    	int i,j;
     
    	memcpy(tmp1, value1, 10);
    	for(i=0; i<(value1>>4); i++)
    	{
    		memcpy(tmp2, &donnee[i*9]);
    		SET(&donnee[i*9], value1);
    		SET(&donnee[i*9], value1+9);
    		SET(&donnee[i*9], value1);
     
    		for(j=0; j<9; j++)
    		donnee[(i*9)+j] ^= tmp1[j];
    		memcpy(tmp1, tmp2, 10);
    	}
    	return;
    }

    A l'apelle de la fonction Appliquer(&donnee[i+9],var1,var2);

  12. #12
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    tu peux montrer le prototype et/ou le code de la fonction SET() aussi ?
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  13. #13
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Si je regarde rapidement le code de la fonction Appliquer()

    1/ memcpy(tmp2, &donnee[i*9]); c'est pas bon, il manque un parametre, la fonction memcpy() demande 3 paramètres

    2/ for(i=0; i<(value1>>4); i++). value1 est un pointeur (unsigned char *) et je ne comprends pas le sens de ce que tu veux faire (tu testes i par rapport au pointeur divisé par 16 ?), c'est pas clair.

    3/ y pas de commentaire, donc on comprend pas ce que tu veux faire.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  14. #14
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 94
    Par défaut
    Citation Envoyé par ram_0000 Voir le message
    tu peux montrer le prototype et/ou le code de la fonction SET() aussi ?

    Bien sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    26
    27
    28
    29
    30
    31
     
    void SET(byte* a, int mode, byte* var) 
    {
    	int i, j, k, t, rounds;
    	unsigned long R, L, C, D;
    	unsigned long R1, T;                              
    	unsigned char K[8], *PC2;
    	unsigned char , swap1, swap2;
     
    	if(mode & PC1)
    		PC2 = PC3;
    	else
    		PC2 = PC2_std;
    	mode = a[7];
     
    	if(mode & IP) 
     
    	/* split VAR on 2 half */
    	SPLIT_D(var,L,R);
     
    	   printf("\n var:\t %02x %02x  \n", L, R);
    	    printf("a:\t %02x %02x\n", C, D);
     
             else
     
              PC2 = PC2_std;  
     
     
     
     
    }

  15. #15
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 94
    Par défaut
    Citation Envoyé par ram_0000 Voir le message
    Si je regarde rapidement le code de la fonction Appliquer()

    y pas de commentaire, donc on comprend pas ce que tu veux faire.

    L'algorithme qui doit étre utiliser est (&donnee[i+9],var1,var2);
    Mais le probléme j'ai depuis hier soir une erreur qui m'empéche de voir le résultat obtenu à l'ecran avec une erreur de word alignment expected.

    Par contre ce code (&donnee[0x20]+i+9 ); passe sans aucune erreur mais le résultat est faux .


    le code qui affiche le bon résultat est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    i=0;
     
    while(i < 5)
    	{
    	switch (donnee[i])
    	{
    	case :0		
              {
    	Appliquer(&donnee[i+9]); 		
    		}


    Mais y'a une erreur de Word Alignement .

    Par contre ce code passe sans probléme MAIS résultat = faux .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    i=0;
     
    while(i < 5)
    	{
    			switch (donnee[i])
    			{
    			case :0		
     
    			{
    		Appliquer(&donnee[0x20]+i+9); //  fonction appliquer
                   // Appliquer(donnee+i+9) // pareil résultat faux MAIS pas d'erreur
                      de Word Alignement .
                            }

  16. #16
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par Marley_T Voir le message
    L'algorithme qui doit étre utiliser est (&donnee[i+9],var1,var2);
    Ce n'est pas un algorithme

    Citation Envoyé par Marley_T Voir le message
    Par contre ce code (&donnee[0x20]+i+9 ); passe sans aucune erreur mais le résultat est faux .
    Comme il te l'a déjà été signale, tu accèdes a un élément en dehors du tableau. Ton tableau a 20 éléments dont les indices varient de 0 a 19 et toi tu utilises l'adresse de l'élément d'indice 41+i.

    Citation Envoyé par Marley_T Voir le message
    Mais y'a une erreur de Word Alignement .
    A quel moment as-tu cette erreur ? Quels phénomènes observes-tu exactement ? Quel est le message exacte qui indique cette erreur ? Dans quel environnement travailles-tu ? Que veux-tu faire précisément ?

  17. #17
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 94
    Par défaut
    Citation Envoyé par ram_0000 Voir le message
    on comprend pas ce que tu veux faire.

    Appliquer ce code : (&donnee[i+9], var1,var2) sans avoir d'erreur de Word Alignement .
    Ce code (&donnee[0x20]+i+9, var1,var2); passe sans probléme MAIS le résultat est faux .
    Car on veux aller à l'index du tableau +9 . TABLEAU [i+9] mais y'as un probléme d'alignement de données en mémoire .
    C'est le probléme principale .

    Si tu as d'autres quéstions n'hésites pas .

  18. #18
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Bon on tourne en rond, je viens de ragarder le code de SET() et y a des choses pas catholiques dedans qui ne devrait pas se compiler de toute façon.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    unsigned char , swap1, swap2;    // ici il manque quelquechose ou alors la , est de trop
     
    if(mode & PC1)
       PC2 = PC3;               // ici PC3 n'est pas déclaré
    mon avis si tu veux de l'aide efficace de la part du forum :

    1/ élève le niveau de warning de ton compilateur pour le rendre un peu moins permissif à ce genre d'erreur
    2/ fait nous un beau petit source qui compile et qui soit un documenté/commenté un minimum.
    3/ post nous tout (et pas uniquement des petits bouts de code) et décrit les problèmes que tu rencontre.

    A mon avis, tu as 2 problèmes :
    1/ un problème visible d'alignement
    2/ un autre problème qui pointeras le bout de son nez dès que le 1er problème sera corrigé

    Ce n'est pas parce que cela compile sans erreur que cela marche comme tu veux (et loin s'en faut)
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  19. #19
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 94
    Par défaut
    Citation Envoyé par gl Voir le message
    Ce n'est pas un algorithme


    A quel moment as-tu cette erreur ?
    salut gl

    lorsque je mets Appliquer(&donnee[i+9], var1,var2) = erreur Word Alignement.

    Par contre Appliquer(&donnee[0x20]+i+9, var1,var2) = pas d'erreurs MAIS résultat = faux .



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Quel phenoment observes-tu exactement ?
    le phénome que j'observes et que lorsque je compile le programme plante lorsque je mets lorsque je mets Appliquer(&donnee[i+9], var1,var2).





    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Quel est le message exacte qui indique cette erreur ?
    Le type de message est toujours le méme

    fatal error at line 263 it's not a Word Aligned .
    Fatal-C_Runtime-Read through incorrectly aligned pointer word alignment expected


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dans quel environnement travailles-tu ?
    Win32 x86 Little Endian .


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Que veux-tu faire precisiment ?
    Obtenir un résultat correct tout en évitant une erreur de Word Alignement .

  20. #20
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 94
    Par défaut
    Citation Envoyé par ram_0000 Voir le message
    1/ un problème visible d'alignement

    + 1 , Tout à fait .

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [V5] Problème d' alignement de données tableau
    Par gaugau3000 dans le forum Deski
    Réponses: 4
    Dernier message: 11/04/2009, 22h00
  2. [Designer] Problème de transfert de données entre modul
    Par BILLYPATOU dans le forum Designer
    Réponses: 11
    Dernier message: 09/03/2004, 18h15
  3. Problème de rafraîchissement de données...
    Par Alain Dionne dans le forum Bases de données
    Réponses: 3
    Dernier message: 06/03/2004, 21h07
  4. [Interbase 7] Problème d'insertion de données
    Par Tuscelan dans le forum InterBase
    Réponses: 12
    Dernier message: 19/11/2003, 22h58
  5. problème xsl : inclure une donnée xml dans une balise html
    Par djodjo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2003, 09h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo