下面是目标-c姐妹问题,它可能提供一些洞察力:*。
我所做的工作如下:
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;发生时,函数会崩溃,而我从调试器得到一个错误的ACCESS语句。outp是指向outData的指针,valprev是长的。
问题必须在于我对指针和modulatedBytes和/或decompressedBytes的理解。
我对C和较低层次的概念了解甚少。我想了解一下我的问题。
发布于 2013-09-22 02:20:30
将short *decompressedBytes = NULL;作为outdata参数传递给adpcm_decoder(),然后尝试取消引用它。你忘记分配decompressedBytes了吗?
https://stackoverflow.com/questions/18939572
复制相似问题