FC的注册很坑 发表于 2020-4-7 10:36:57

如何给unsigned char *赋值

C语言小白请教,想要给函数中的unsigned char *参数赋值,照着网上的写了怎么都报错,要怎么改main函数里的赋值代码?

报错是: invalid conversion from 'unsigned char' to 'unsigned char*' [-fpermissive]

#include <stdio.h>

void seedToKey(unsigned char *seed,int seedlength,unsigned char *key, unsigned int keylength);

main()
{

        int seedlength=2;
        unsigned char *seed;
        unsigned char a;
        a = 0;
        a=1;
        seed=&a;
        unsigned char *key;
        unsigned char b;
        key=&b;
        int keylength=0;
        seedToKey(*seed,seedlength,*key,keylength);
}
void seedToKey(unsigned char *seed,int seedlength,unsigned char *key, unsigned int keylength)
{
        keylength = seedlength*2;
        printf("%3.0f",keylength);
        int i=0;
        for(i=0;i!=seedlength*2;i++)
    {
      if(i>=seedlength)
            key = seed;
      else
            key = seed;   
    }
}

qiuyouzhi 发表于 2020-4-7 10:39:50

https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=62095104_26_oem_dg&wd=%E5%A6%82%E4%BD%95%E7%BB%99unsigned%20char%20*%20%E8%B5%8B%E5%80%BC&rsv_t=ad37DNG8Z0ZnAib3EfPvWjRsnc7FGRW5oqRyqDetsVi818ofAHID60NIJTCrMnuNKKUKUWkvKln1&rsv_enter=1&rsv_dl=tb&rsv_sug3=22&rsv_sug1=5&rsv_sug7=101&rsv_sug2=0&inputT=7059&rsv_sug4=7231

FC的注册很坑 发表于 2020-4-7 10:55:22

qiuyouzhi 发表于 2020-4-7 10:39
https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=62095104_26_oem_dg&wd=%E5%A6%82%E4%BD%95% ...

跳转到了百度首页,大佬在教育我么{:10_285:}

sunrise085 发表于 2020-4-7 10:55:29

你这不是给unsigned char*赋值的问题吧
void seedToKey(unsigned char *seed,int seedlength,unsigned char *key, unsigned int keylength)
函数中第一个和第三个参数都是unsigned char* 类型,但是你在调用函数的时候,写的却不是指针,
第18行,seedToKey(*seed,seedlength,*key,keylength);   *seed不是指针,而是指针指向的内容,类型其unsigned char,不加* 才是指针。
另外第23行printf和石化符号用错了,keylength是unsigned int 格式化输出应该用%u,而不是%f
#include <stdio.h>

void seedToKey(unsigned char *seed,int seedlength,unsigned char *key, unsigned int keylength);

main()
{

      int seedlength=2;
      unsigned char *seed;
      unsigned char a;
      a = 0;
      a=1;
      seed=&a;
      unsigned char *key;
      unsigned char b;
      key=&b;
      int keylength=0;
      seedToKey(seed,seedlength,key,keylength);
}
void seedToKey(unsigned char *seed,int seedlength,unsigned char *key, unsigned int keylength)
{
      keylength = seedlength*2;
      printf("%u",keylength);
      int i=0;
      for(i=0;i!=seedlength*2;i++)
    {
      if(i>=seedlength)
            key = seed;
      else
            key = seed;   
    }
}

qiuyouzhi 发表于 2020-4-7 10:56:16

FC的注册很坑 发表于 2020-4-7 10:55
跳转到了百度首页,大佬在教育我么

不是,不要光点击蓝色的部分
把所有的字符放进地址栏

FC的注册很坑 发表于 2020-4-7 10:58:04

qiuyouzhi 发表于 2020-4-7 10:56
不是,不要光点击蓝色的部分
把所有的字符放进地址栏

2个都试了,都是跳转到百度首页

qiuyouzhi 发表于 2020-4-7 10:58:51

FC的注册很坑 发表于 2020-4-7 10:58
2个都试了,都是跳转到百度首页

额,好吧
那你看看4楼
页: [1]
查看完整版本: 如何给unsigned char *赋值