簡體   English   中英

c - const char *和char * casting(ADPCM解碼)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM