Could someone explain this code step by step: Code: #include <stdio.h> #define MAX 10 int main() { char array[MAX][MAX], c = 0; int d = 1, x = 0, i, j; do scanf("%s", array[x]); while (array[x++][0] != '0'); { float* pf; int xx, *pi = (int*)&array[0][7]; xx = ((*pi) & 0x41000000); pf = (float*)&xx; printf("%5.2f\n", *pf); } for (c-=--x; c++&**array; d+=!(c<<x>0)) d<<=1; d -= c; for (i = 0; i < x; i==1?printf("%c ", array[i][x>>1]):i, ++i) for (j = 0; j <= x - i; printf("%c", array[i][j++])); printf("%x", d); return 0; } Example input: Code: programming language 0 Output: Code: 2.00 prolaa 6 I tried debugging the program with Code Blocks, but didn't understand how it works. Thanks for replies.
Explain it? No, because it was clearly written by a complete idiot who has no regard for any kind of coding standards. Maybe it's an interview question designed to test *your* knowledge of C syntax. The program exhibits undefined behaviour because "programming" is more than 10 characters. So with this buffer overflow, anything that happens next is completely inexplicable. What is your analysis of the code? Are there any bits you don't understand?