comparison c/bitVector/main.cc @ 93:23e796173c91

fix malloc in in BitInfo.bitContainer
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Tue, 27 Oct 2015 19:29:26 +0900
parents 9a1bb8f439f5
children
comparison
equal deleted inserted replaced
92:9a1bb8f439f5 93:23e796173c91
14 bi->arrayNum = (bitSetPosition + 1) / bitBlock; 14 bi->arrayNum = (bitSetPosition + 1) / bitBlock;
15 if (((bitSetPosition + 1) % bitBlock) != 0) bi->arrayNum++; 15 if (((bitSetPosition + 1) % bitBlock) != 0) bi->arrayNum++;
16 16
17 printf("Array Num : %d\n",bi->arrayNum); 17 printf("Array Num : %d\n",bi->arrayNum);
18 18
19 unsigned long bitContainer[bi->arrayNum]; 19 bi->bitContainer = (unsigned long*)malloc(sizeof(unsigned long)*bi->arrayNum);
20
20 for (int i = 0; i < bi->arrayNum; i++) { 21 for (int i = 0; i < bi->arrayNum; i++) {
21 bitContainer[i] = 0; 22 bi->bitContainer[i] = 0;
22 } 23 }
23 unsigned long tmp = 1; 24 unsigned long tmp = 1;
24 int arrayPosition = 0; 25 int arrayPosition = 0;
25 26
26 arrayPosition = bitSetPosition / bitBlock; 27 arrayPosition = bitSetPosition / bitBlock;
27 bitSetPosition = bitSetPosition % bitBlock; 28 bitSetPosition = bitSetPosition % bitBlock;
28 29
29
30 bi->bitContainer = bitContainer;
31 tmp = tmp << (bitBlock - 1 - bitSetPosition); 30 tmp = tmp << (bitBlock - 1 - bitSetPosition);
32 bi->bitContainer[arrayPosition] = bi->bitContainer[arrayPosition] | tmp; 31 bi->bitContainer[arrayPosition] = bi->bitContainer[arrayPosition] | tmp;
33
34 bitPrint(bi);
35 32
36 return bi; 33 return bi;
37 } 34 }
38 35
39 void bitPrint(BitInfoPtr bi) { 36 void bitPrint(BitInfoPtr bi) {