我有一个非常恼人的问题。这是我正在使用的缓冲区结构
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);
我在这里做错了什么?请帮助。