2015-10-15 135 views
0

當我將element_t轉換爲字符串時,我得到垃圾值。可能是什麼原因?PBC element_to_bytes錯誤「打印垃圾」無法將元素轉換爲字符串

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�����[ 

我想正常的一個打印的element_a。我錯過了什麼?

感謝, 約傑什

回答

1

你沒有得到的垃圾,你是不是你的元素轉換爲字符串。您將一組字節傳遞給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); 
+0

我得到分段錯誤(核心轉儲)錯誤。你能再次檢查一下嗎? – re3el

+0

對不起,我混合了兩個功能。見編輯的答案。 – flowit

+0

我只得到如圖所示的部分輸出element_a:123832556562094194634656047429957700835080349207 a:1238325565620941946 – re3el

相關問題