将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);