私は本当にイライラする問題を抱えています。これは私が使用しているバッファ構造です
typedef struct BufferDescriptor {
char * ca_head ; /* pointer to the beginning of character array (character buffer) */
int capacity ; /* current dynamic memory size (in bytes) allocated to character buffer */
char inc_factor; /* character array increment factor */
int addc_offset ; /* the offset (in char elements) to the app-character location */
int mark_offset ; /* the offset (in chars elements) to the mark location */
char r_flag; /* reallocation flag */
char mode; /* operational mode indicator*/
} Buffer ;
上記のコードを変更することはできません。inc_factor は 0 から 255 までの値を取ることができるはずです。
したがって、バッファが作成される関数では、inc_factor が負でないことを確認するために次のことを行います。
Buffer* b_create(int init_capacity, char inc_factor,char o_mode){
Buffer* buffer = (Buffer*)malloc(sizeof(Buffer));
buffer->ca_head=(char*)malloc(sizeof(char)*init_capacity);
buffer->inc_factor=(unsigned char)(inc_factor);
しかし、次の行では負の数が返されます。
printf("inc factor = %d",buffer->inc_factor);
ここで何が間違っていますか?助けてください。