Δημοσιεύτηκε: 24 Μαρ 2011, 19:09
από simosx
Αντιγράφω από το http://simos.info/blog/archives/421

Τι κάνει το παρακάτω πρόγραμμα και γιατί; (δοκιμάστηκε σε Ubuntu 64-bit, πρέπει να λειτουργεί και σε 32-bit).
Το αποτέλεσμα βοηθάει να καταλάβουμε το πόσο σημαντικό είναι να χρησιμοποιούμε σωστά τους ενταμιευτές (buffers) στη C.

Κώδικας: Επιλογή όλων
#include <stdio.h>

int calculate(void)
{
int i;
int p[9];

for ( i = 0; i <= 3; i++ )
if (sizeof(int*)==8)
p[i*6+2]+=15;
else
p[i*3 + 2] += 16;
}

int main()
{
calculate();
printf("Hello, World!\n");

return 0;
}


Διορθωμένο, δουλεύει σε 32-bit και 64-bit Ubuntu.