将 char* 转换为 char &

标签 c char base64 constants

我有以下代码,运行良好:

//function1 for decoding base64
int base64_decode (const char *base64, char *to) { /*function*/ }

//code which is working
buf_struct tmpbuf;//structure
base64_decode(buffer, (char *)&tmpbuf);

我想将其转换为:

,以避免其他函数做同样的事情
//function2 for decoding base64
char *unbase64(unsigned char *input, int length) { /*function*/ }

//code needs to be modified
buf_struct tmpbuf;//structure
char *unbase = unbase64(buffer, strlen(buffer));
unbase = (char *)&tmpbuf;

但第二个不起作用。

*如何将“char *”转换为“(char )&”?

编辑:

char *unbase;
unbase = malloc(strlen(buffer) + 1);
memset(unbase, 0, strlen(buffer) + 1);
//unbase = unbase64(buffer, strlen(buffer));
base64_decode(buffer, unbase);
fprintf(stderr,"unbase: %s\n",unbase);
strcpy((char *)&tmpbuf, unbase);

最佳答案

您需要将数据复制到缓冲区:

//code needs to be modified
buf_struct tmpbuf;//structure
char *unbase = unbase64(buffer, strlen(buffer));
strcpy((char *)&tmpbuf, unbase);

// Depending on the contract for unbase64 you may need to free() unbase here.

关于将 char* 转换为 char &,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19293868/

相关文章:

ios - 正确地将十六进制转换为 base64

java - 如何从base64解码视频?

c# - 为什么从两个不同的 base64 字符串转换返回相等的字节数组?

c++ - 创建哈希表来存储某个指针的值

c - 语音 ip 的服务类型字段集

从c中的指针复制特定字符

C编程: how to get normal value of int without using value - 48?

c - while 循环不继续,在 1 次迭代后退出

c - 如何使我的阶乘函数可重入?

c - 将 char 数组中的信息放入动态创建的数组中