Mercurial > hg > Members > masakoha > testcode
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) { |