所以我正在做一个练习,看看我是否正确使用了 memset。
这是我编写的原始代码,它应该将一些地址设置为值 50:
int main(){
int *block1 = malloc(2048);
memset(block1, 50, 10);
// int count = 0;
for (int *iter = block1; (uint8_t *) iter < (uint8_t *)block1 + 10; iter = (int *) ((uint8_t *)iter + 1) ){
printf("%p : %d\n", iter, *iter);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我希望内存中的每个地址都存储值 50。但是我的输出是:
(地址:值)
0x14e008800 : 842150450
0x14e008801 : 842150450
0x14e008802 : 842150450
0x14e008803 : 842150450
0x14e008804 : 842150450
0x14e008805 : 842150450
0x14e008806 : 842150450
0x14e008807 : 3289650
0x14e008808 : 12850
0x14e008809 …Run Code Online (Sandbox Code Playgroud)