誰かがここで何が起こっているのかを明確にしてもらえますか?
#define HEXVAL 0xA5
int main(int argc, char *argv[])
{
int numBytes = 3;
char *tmp;
char *pyld;
pyld = malloc(numBytes * sizeof(char));
memset(pyld, 0, sizeof(pyld));
tmp = pyld;
*(tmp) = HEXVAL;
printf("out = %x\n", pyld[0]); // -> ffffffa5
}
すべての「out = ffffffa5」ではなく、「out = a5」を期待していました。符号付きの値を pyld に追加したいので、pyld を unsigned char に設定したくありません。
ありがとう!