0
にIは、関数intToBitsによってビットの配列に文字を変換するために、次のコードを作った:C:チャービットとプリント
typedef unsigned char poly8;
typedef unsigned long long poly8x64[8];
char* intToBits(unsigned k) {
int i;
char *nk = malloc(8);
for(i=7;i>=0;i--){
nk[i] = (k%2);
k = (int)(k/2);
printf("nk= %d \n", nk[i]);
}
return *nk;
}
void poly8_bitslice(poly8x64 r, const poly8 x[64])
{
//TODO
int i;
for(i=0;i<64;i++)
{
printf("x= %d \n", x[i]);
char* mem = intToBits(x[i]);
printf("bufer= %d \n", *mem);;
}
}
int main()
{
poly8 a[64], b[64], r[64];
poly8x64 va, vb, vt;
int i;
FILE *urandom = fopen("/dev/urandom","r");
for(i=0;i<64;i++)
{
a[i] = fgetc(urandom);
b[i] = fgetc(urandom);
}
poly8_bitslice(va, a);
poly8_bitslice(vb, b);
fclose(urandom);
return 0;
}
しかし、私はセグメンテーションfailtエラーを取得してい印刷中。私は何をすべきか分からない。ポインタが間違っていますか? intToBitsの結果を出力したいだけです。
あなたはbytes'ない 'bits'が...配列のtypedef使用 –
は、IMO、 – Jerfov2
真ひどいアイデアですが、'割り当てるセグメンテーションフォールト – Ceesz