将element_t转换为字符串时,出现垃圾值。可能是什么原因?

element_printf("element_a: %B",a);

//int len = element_length_in_bytes(a);
unsigned char* strA= (unsigned char*)malloc(element_length_in_bytes(a)*sizeof(char));
element_to_bytes(strA,a);
printf("\n\n\n a: %s\n\n\n",strA);


输出为:

element_a: 676879270129030191324293305775237511254264666883


 a: v�P��?�P�+��a�����[


我希望普通a打印为element_a。我想念什么?

谢谢,
约格什

最佳答案

您不会收到垃圾,也不会将元素转换为字符串。您正在将字节数组传递给printf,并告诉该函数将其解释为字符。毫不奇怪,这行不通。试试element_snprint()

element_printf("element_a: %B",a);

size_t s = (size_t) element_length_in_bytes(a);
char* strA= (char*)malloc(s*sizeof(char));
element_snprint(strA, s, a)
printf("\n\n\n a: %s\n\n\n",strA);

07-26 08:41