1#include <stdlib.h> 2 3struct { 4 long sqlcode; 5} sqlca; 6 7 8struct data_record { 9 int dummy; 10 int a[100]; 11} *data_ptr, data_tmp; 12 13 14int 15num_records() 16{ 17 return 1; 18} 19 20 21void 22fetch() 23{ 24 static int fetch_count; 25 26 memset(&data_tmp, 0x55, sizeof(data_tmp)); 27 sqlca.sqlcode = (++fetch_count > 1 ? 100 : 0); 28} 29 30 31void 32load_data() { 33 struct data_record *p; 34 int num = num_records(); 35 36 data_ptr = malloc(num * sizeof(struct data_record)); 37 memset(data_ptr, 0xaa, num * sizeof(struct data_record)); 38 39 fetch(); 40 p = data_ptr; 41 while (sqlca.sqlcode == 0) { 42 *p++ = data_tmp; 43 fetch(); 44 } 45} 46 47 48main() 49{ 50 load_data(); 51 if (sizeof (int) == 2 && data_ptr[0].dummy != 0x5555) 52 abort (); 53 else if (sizeof (int) > 2 && data_ptr[0].dummy != 0x55555555) 54 abort (); 55 exit (0); 56} 57