Note that there are some explanatory texts on larger screens.

plurals
  1. POMemcpy unexpected behavior
    primarykey
    data
    text
    <p>I'm coding my own version of Tetris. While creating blockRotation method I encountered weird problem with memcpy. During second call for blockRotate, my bool[4*4] array is not saved corectly, despite that is generated properly. What's wrong?</p> <p>This is my error log:</p> <pre><code>arr_shift[0]: true arr_shift[1]: false arr_shift[2]: false arr_shift[3]: false arr_shift[4]: true arr_shift[5]: true arr_shift[6]: false arr_shift[7]: false arr_shift[8]: true arr_shift[9]: false arr_shift[10]: false arr_shift[11]: false arr_shift[12]: false arr_shift[13]: false arr_shift[14]: false arr_shift[15]: false arr_rot[0]: false arr_rot[1]: false arr_rot[2]: true arr_rot[3]: false arr_rot[4]: false arr_rot[5]: false arr_rot[6]: true arr_rot[7]: true arr_rot[8]: false arr_rot[9]: false arr_rot[10]: true arr_rot[11]: false arr_rot[12]: false arr_rot[13]: false arr_rot[14]: false arr_rot[15]: false shape[0]: true shape[1]: false shape[2]: false shape[3]: false shape[4]: true shape[5]: true shape[6]: false shape[7]: false shape[8]: true shape[9]: false shape[10]: false shape[11]: false shape[12]: false shape[13]: false shape[14]: false shape[15]: false arr_shift[0]: false arr_shift[1]: false arr_shift[2]: false arr_shift[3]: false arr_shift[4]: false arr_shift[5]: false arr_shift[6]: false arr_shift[7]: false arr_shift[8]: false arr_shift[9]: false arr_shift[10]: false arr_shift[11]: false arr_shift[12]: false arr_shift[13]: false arr_shift[14]: false arr_shift[15]: false arr_rot[0]: false arr_rot[1]: true &lt;--- arr_rot[2]: true &lt;--- arr_rot[3]: true &lt;--- arr_rot[4]: false arr_rot[5]: false arr_rot[6]: true &lt;--- arr_rot[7]: false arr_rot[8]: false arr_rot[9]: false arr_rot[10]: false arr_rot[11]: false arr_rot[12]: false arr_rot[13]: false arr_rot[14]: false arr_rot[15]: false shape[0]: false shape[1]: false &lt;--- shape[2]: false &lt;--- shape[3]: false &lt;--- shape[4]: false shape[5]: false shape[6]: false &lt;--- shape[7]: false shape[8]: false shape[9]: false shape[10]: false shape[11]: false shape[12]: false shape[13]: false shape[14]: false shape[15]: false </code></pre> <p>And this is my code:</p> <pre><code>memset(shape, 0, 16*sizeof(bool)); if(toShift == true) { memcpy(shape, arr_shift, 16*sizeof(bool)); } else { memcpy(shape, arr_rot, 16*sizeof(bool)); } for(int i = 0; i &lt; 4; i++) { for(int j = 0; j &lt; 4; j++) { fprintf(stderr, "shape[%i]: %s\n", i*4+j, shape[i*4+j]? "true":"false" ); } } fprintf(stderr, "\n\n"); </code></pre> <p>Declararation of shape is in Block class header, and is as follows:</p> <pre><code> bool shape[16]; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload