[英]c - const char* and char* casting (ADPCM decoding)
這是objective-c姐妹問題,它可能提供一些見解: c和objective-c - const char *和char *
我正在做以下事情:
g_ADPCMstate.valprev=32767;
g_ADPCMstate.index=0;
const char *modulatedBytes1 = {0xca,0x82,0x00,0x00,0x80,0x80,0x80,0x80};
char *modulatedBytes = (char *)modulatedBytes1;
unsigned int moduleatedLength = 8;
short *decompressedBytes = NULL;
adpcm_decoder(modulatedBytes, decompressedBytes, moduleatedLength, &g_ADPCMstate);
函數聲明是:
void
adpcm_decoder(indata, outdata, len, state)
char indata[];
short outdata[];
int len;
struct adpcm_state *state;
g_ADPCMstate
是adpcm_state結構的全局實例變量。 http://codepad.org/5vyd0CXA是完整的代碼。 *outp++ = valprev;
時函數崩潰*outp++ = valprev;
發生了,我從我的調試器得到一個BAD ACCESS語句。 outp是指向outData的指針,而valprev是一個long。
問題必須在於我對指針以及modulatedBytes
和/或decompressedBytes
理解
我對C和低級概念了解甚少。 我希望能夠深入了解我的問題。
你傳遞short *decompressedBytes = NULL;
作為adpcm_decoder()
的outdata
參數,然后嘗試取消引用它。 你忘記分配decompressedBytes
嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.