malloc()
を使用して割り当てたバイトに書き込もうとしています。私は本当にビットと値を正しく印刷するのに苦労しています。バイト単位での印刷と書き込み
int main(){
unsigned char *heap = (unsigned char *) malloc(2 * sizeof(char)); //allocate two bytes
int n= 2, i =0;
unsigned char* byte_array = heap;
while (i < 2) //trying to write over the first byte then print out to verify
{
printf("%016X\n", heap[i]);
heap[i] = "AAA";
printf("%p\n", heap[i]);
i++;
}
}
これは私がこのコードを試してみてくださいC.で "文字列" と 'C' の文字の違いを理解するには
0000000000000000
0xc7
0000000000000000
0xc7
'heap [i] =" AAA "'は何をすると思いますか? '' AAA ''は' 'unsigned char'ではありません。 – Ryan
どこから始めますか?あなたのコンパイラは、 'heap [i] =" AAA ";' - 'unsigned char'に' char * 'を代入しようとしています。それは問題があることを示しています。 'heap [i]'をポインタとして出力しようとしていますが、ポインタではありません。 'unsigned char'です。あなたのコンパイラが警告を無視する余裕はありません - あなたのキャリアのこの段階では、あなたのコードのすべての誤り(またはあなたのコードの理解)です。後で、彼らは誤りです。彼らはもうこれ以上の質問を引き起こさないでしょう。 –
この投稿に 'byte_array'を保存するというポイントがありましたか? – WhozCraig