diff --git a/arc b/arc deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/submessages.cpp b/src/submessages.cpp index b25c5255c8ced29f7fb4efdec2533e6f1d05504b..67b5c3c2e17ad4240caa6bac71c5e24e80f9a22b 100644 --- a/src/submessages.cpp +++ b/src/submessages.cpp @@ -13,14 +13,8 @@ void SubMessage::setParity(){ int i, j, bitsParity[8]; // Alocação da matriz de bits - bitsMessage = new int*[getSize()+2]; - bitsMessage[0] = new int[8]; - bitsMessage[1] = new int[8]; - for(j = 0 ; j < 8 ; j++){ - bitsMessage[0][j] = ((((sizSeqTyp >> 8) & 0x00FF) >> (7-j)) & 0x01); - bitsMessage[1][j] = ((((sizSeqTyp >> 0) & 0x00FF) >> (7-j)) & 0x01); - } - for(i = 2 ; i < getSize()+2 ; i++){ + bitsMessage = new int*[getSize()]; + for(i = 0 ; i < getSize() ; i++){ bitsMessage[i] = new int[8]; // Divide os dados em bits for(j = 0 ; j < 8 ; j++){ @@ -31,7 +25,7 @@ void SubMessage::setParity(){ // Soma os bits verticalmente for(j = 0 ; j < 8 ; j++){ bitsParity[j] = 0; - for(i = 0 ; i < getSize()+2 ; i++){ + for(i = 0 ; i < getSize() ; i++){ bitsParity[j] = bitsParity[j] + bitsMessage[i][j]; } // Caso a soma vertical de uma coluna for par, bitsParity recebe 1, @@ -44,7 +38,7 @@ void SubMessage::setParity(){ // Atribui os bits para parity (variável de paridade do objeto) parity = (parity << 1) | bitsParity[j]; } - for(i = 0 ; i < getSize()+2 ; i++){ + for(i = 0 ; i < getSize() ; i++){ if(bitsMessage[i]){ delete(bitsMessage[i]); } @@ -147,26 +141,26 @@ int SubMessage::checkParity(){ int i, j, bitsParity[8]; unsigned char parityTest; +cout << "AQUI" << endl; // Alocação da matriz de bits - bitsMessage = new int*[getSize()+2]; - bitsMessage[0] = new int[8]; - bitsMessage[1] = new int[8]; - for(j = 0 ; j < 8 ; j++){ - bitsMessage[0][j] = ((((sizSeqTyp >> 8) & 0x00FF) >> (7-j)) & 0x01); - bitsMessage[1][j] = ((((sizSeqTyp >> 0) & 0x00FF) >> (7-j)) & 0x01); - } - for(i = 2 ; i < getSize()+2 ; i++){ +cout << "this-getSize = " << getSize() << endl; +// bitsMessage = (int**) malloc(sizeof(int*)*getSize()); + bitsMessage = new int*[getSize()]; + //bitsMessage = (int**) realloc(bitsMessage,sizeof(int*)*getSize()); +cout << "AQUI2" << endl; + for(i = 0 ; i < getSize() ; i++){ bitsMessage[i] = new int[8]; // Divide os dados em bits for(j = 0 ; j < 8 ; j++){ bitsMessage[i][j] = ((data[i] >> (7-j)) & 0x01); } } +cout << "AQUI 3" << endl; // Soma os bits verticalmente for(j = 0 ; j < 8 ; j++){ bitsParity[j] = 0; - for(i = 0 ; i < getSize()+2 ; i++){ + for(i = 0 ; i < getSize() ; i++){ bitsParity[j] = bitsParity[j] + bitsMessage[i][j]; } // Caso a soma vertical de uma coluna for par, bitsParity recebe 1, @@ -179,13 +173,15 @@ int SubMessage::checkParity(){ // Atribui os bits para parity (variável de paridade do objeto) parityTest = (parityTest << 1) | bitsParity[j]; } - for(i = 0 ; i < getSize()+2 ; i++){ +cout << "AQUI 4" << endl; + for(i = 0 ; i < getSize() ; i++){ if(bitsMessage[i]){ delete(bitsMessage[i]); } } +cout << "AQUI 3" << endl; delete(bitsMessage); -cout << "AQUI 6" << endl; +cout << "AQUI 3" << endl; if (parityTest == parity){ return 0; }else{