一直玩itoa()爲一個學校項目,它工作正常,然後開始拋出錯誤。 說itoa的第一個實例處理時,它有一個分段錯誤。itoa在C使用Codeblocks導致分段錯誤
這裏是違規的代碼。
我不明白爲什麼它會起初工作,然後開始有問題。我之前添加的唯一一件事是在底部添加了一些printf()行,因爲我已經將它們從代碼中註釋掉了,但它仍然不起作用。
#include <stdio.h>
#include <stdlib.h>
int main()
{
//Variables
unsigned int byteH=0b00011001;
unsigned int byteL=0b00001110;
char* sValue;
char* sFreq;
float iConv;
char Output[4];
int i;
i=((byteH*32)+byteL); // just adding two 5bit blocks together
itoa(i,sValue,10); // This instance throws the segmenation error
iConv=((byteH*32)+byteL);
iConv=(int)(iConv/1.023);
i=(int)iConv;
itoa(i,sFreq,10); // This instance doesn't cause problems.
可能「工作」,然後不工作的原因是因爲指針未設置爲指向存儲。未初始化的值是「隨機的」。如在其中,不是真正的隨機,而是依賴於複雜的因素,這些因素不值得你花時間去弄清楚僞隨機數生成器。 – 2013-02-24 22:30:49