我遇到了解碼器問題,想知道是否有人可以幫我解決問題嗎?任何人都可以幫助我解決分段錯誤
基本上,我試圖建立我的隱寫編碼解碼器,編碼器放置位從消息上LSB每一個字節的從聲音文件
解碼器的工作就是蒐集那些位了並從他們的創建一個新的消息
代碼是爲了做到以下幾點:
代碼:選擇所有
轉到消息陣列位置。
集到bitIndex處0的增量,直到7 //(8位爲一個字節)
去聲音陣列位置
如果soundbit等於加0至新的字節否則添加一個至 新的字節結束
執行位位移一次離開
增量bitIndex處
通過使用各種printf
的我可以告訴你,運行速度流暢約3/4倍崩潰之前。
希望是有道理的實際循環是這樣的:
{
int mIndex, sIndex, bitIndex, mask;
char *message[9];
mask = 1;
mIndex = 0;
unsigned char *soundFile = LoadWavAudioFile("boomedit.wav");
int soundFileSize = GetSizeOfWavFile();
bitIndex = 0;
for(mIndex = 0; mIndex < 8; mIndex++)//index for message
{
printf("1\n");
for(sIndex = 0; sIndex < soundFileSize; sIndex++)//index for soundfile
{
printf("2\n");
for(bitIndex = 0; bitIndex < 8;)
{
printf("3\n");
int test;
if((soundFile[sIndex] & mask) > 0)//is message bit > 0
{
printf("++++++++++++++++\n");
*message[mIndex] = (soundFile[sIndex] | 1);//adds a one to message byte
*message[mIndex] = *message[mIndex] <<1; //shift bits 1 placce left
printf("*****************\n");
}
else
{ //no change the LSB to 0
printf("------------------\n");
*message[mIndex]= soundFile[sIndex] & 254; //adds a zero at end o
*message[mIndex] = *message[mIndex] <<1; //shifts bits 1 place to left
printf("******************\n");
}
bitIndex++;
}
}
}
printf("\n hiddden letters:%s\n", *message); //print message
printf("\nalert 5\n");
}
希望幫助任何事情都會是有益的。
哪條線段錯誤?如何聲明和初始化'message'和'soundFile'? (發佈代碼時不要使用標籤,改用4個空格) – Mike
缺少sIndex for循環的開放括號('{')。這是一個錯字嗎?你也......從來沒有使用bitIndex? –
我認爲丟失括號是一個錯字。當它將位添加到我的新消息數組時,會發生段錯誤。 – Babbleshack