このコードで、プログラムの実行時に *(ptr + 1) の値が 6 ではなく 1 になる理由が気になります。
#include <stdio.h>
int main (void)
{
int *ptr, content = 3;
ptr = &content;
*(ptr + 1) = 6;
*(ptr + 2) = 10;
*(ptr + 3) = 14;
int i = 0;
for (i = 0; i < 4; ++i)
{
printf("The address is %p and the content is %d \n", ptr+i, *(ptr+i));
}
return 0;
}
run int 6 が値 1 に変更されたとき。
*(ptr + 1) = 6;
プログラムの出力は次のとおりです。
The address is 0x7fff7b400a88 and the content is 3
The address is 0x7fff7b400a8c and the content is 1
The address is 0x7fff7b400a90 and the content is 10
The address is 0x7fff7b400a94 and the content is 14
私はそれをvalgrindで実行しましたが、エラーは表示されませんでした.