これは、いくつかの洞察を提供する可能性があるobjective-cの姉妹の質問です: cとobjective-c -- const char* and 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;
し、デバッガーから BAD ACCESS ステートメントを取得します。outp は outData へのポインタですが、valprev は long です。
問題は、ポインターとmodulatedBytes
および/またはのいずれかについての私の理解にある必要がありますdecompressedBytes
私は C および下位レベルの概念をほとんど理解していません。私の問題についての洞察が欲しいです。