重複の可能性:
他の関数を参照してバッファーを渡す
関数astを呼び出すと、データはbufferとbufferlenに保存されますが、decからこのポインターにアクセスしようとすると、* bufferlenを出力できますが、*bufferは不可能です。
temp = bufferを実行すると、セグメンテーション違反が発生します。デバッガーでは、バッファーに「アドレス0x7fが範囲外です」と表示されます。decからバッファを印刷するにはどうすればよいですか?エラーはどれですか?
void ast(KOCTET *buffer,KUINT16 *bufferlen){
KOCTET *Bufferencode,*temp;
KUINT16 BufferSize=5000;
KUINT16 WritePos=0;
KUINT16 total_bytes;
Bufferencode=(KOCTET*)malloc(5000*sizeof(KOCTET));
memset(Bufferencode,0,sizeof(Bufferencode));
total_bytes = stream.CopyIntoBuffer( Bufferencode, BufferSize, WritePos);
buffer=Bufferencode;
*bufferlen=total_bytes;
int z=0;
temp=buffer;
while (z<(*bufferlen)){
printf(" %02X",(unsigned char)*temp);
temp++;
z++;
}
printf("\n");
}
void dec()
{
KOCTET *buffer,*temp;
KUINT16 *bufferlen;
ast_process_048(buffer,bufferlen);
int z=0;
temp=buffer;
while (z<(*bufferlen)){
printf(" %02X",(unsigned char)*temp);
temp++;
z++;
}
printf("\n");
}