2017-04-21 1 views
2

Je vais être downvoted à l'oubli, mais: cette question: https://stackoverflow.com/questions/43510049/c99-for-loop-looses-static-variable-values comme étant incomplet mais ce n'est pas. L'utilisateur a signalé tous les éléments d'un bogue reccurent sous gcc-arm-toochain3.3.1, et encore plus reccurent sur les images 32 bits (toutes les questions de cet utilisateur sont liées à celles-ci), lorsqu'on travaille avec un tableau de structures à l'intérieur une structure.pour la boucle sur 32bit pic avec bras-gcc3.3.1

Ce bug est créé par l'image en considérant la succession sur le pointeur dans la structure de la structure comme un seul nom de variable. lorsque le dernier bit de l'index n'est pas 0, le dépassement de la capacité de lecture lit les valeurs avec le mauvais type en tant que multiple de max int.

Modification du code de:

structure1.structure2[i].var1 = blabla; 

par

structure2_ * ptr = NULL; 
ptr = &structure1.structure2[i]; 
ptr->var1 = blabla; 

corrigera instantanément (par exemple recréée sous windows xp avec keil3.0 & bras-gcc-3.3.1 toolchain et testé sur pic)

Pourquoi est-ce que je publie ceci comme question?

1) Le poste est en attente, donc je ne peux pas y répondre.

2) Je n'ai pas assez de réputation donc je ne peux pas commenter.

3) pairs qui ont examiné le didnt modifier considéré pousser le modifier comme réponse/commentaire

Alors ma question - il devrait être en méta, mais la réputation encore une fois ne suffit pas - est: Pourquoi ne modifie le réviseur n'accepte pas ma modification pour une question en attente si la modification est la réponse à cette question?

Downvote de suite!

modifier si quelqu'un pourrait lier ce fil à l'autre question, je vais l'apprécier.

Répondre

0

Je ne sais pas si c'est vraiment une réponse, mais une modification suggérée liée à ce post et ma question a effectivement résolu mon problème.