繁体   English   中英

C 中的文件打开代码。 我需要解释为什么这段代码在多次运行时会给出不同的输出

[英]FILE opening code in C. I need an explanation why this code gives different outputs when run several times

#include <stdio.h>
#include <stdlib.h>
int main(void){
    FILE *fp = fopen("temp.txt", "we");
    printf("%p\n", fp);
    return 0;
}

此代码给出以下不同的输出:0x19ee260 0x1ef9260 0xbde8260。 . . 我需要关于 memory 的解释。

这是由于地址空间布局随机化 fopen()返回的指针指向的FILE结构在进程的堆memory中,ASLR意味着每次运行程序时堆的位置都会不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM