在c中转换两种类型

时间:2016-02-21 19:25:09

标签: c types

我有char data[500];类型的数据,我需要将其放入一个需要unsigned char* data的函数中。我怎样才能在两者之间进行转换?我是个菜鸟。

3 个答案:

答案 0 :(得分:3)

你可以简单地输入强制转换为unsigned char 这是一个例子

void method(unsigned char *data)
{
    printf("%c",*(data+5));
}
int main()
{
  char arr[10];
  arr[5] = 's';
  method((unsigned char*)arr);
}

希望这有助于。

答案 1 :(得分:2)

以下其中一项应该有效。

  1. 在调用函数之前转换数据。

    char data[500];
    function((unsigned char*)data);
    
  2. 在调用函数之前复制数据。

    unsigned char copyOfData[500];
    memcpy(copyOfData, data, 500);
    function(copyOfData);
    
  3. unsigned char数据类型开头。

    unsigned char data[500];
    function(data);
    

答案 2 :(得分:0)

试试这个:

unsigned char* des;
des = malloc(500 * sizeof(unsigned char));
strncpy(des, data, 500);

然后你应该可以打电话:

func(des);