C语言如何指定堆栈的起始地址
一个64位的程序,是否能够指定堆栈的起始地址为0x100000000,使得程序中的变量都分配在高于4G的内存中,也就是说变量的地址的高32位不为0,其目的是测试程序中是否有地址高位被截断的问题。或者有没有其他方法来测试地址高位截断问题?
开发环境为win10+VS2017
恳请大家指教!
2020-07-29 15:18
程序代码:#include <stdio.h>
#include <stdlib.h>
int main( void )
{
for( ; ; )
{
void* p = malloc( 0x10000 );
printf( "%p\n", p );
if( p >= (void*)0x100000000 )
break;
}
}
2020-07-29 16:51
2020-07-29 16:59
2020-07-29 19:40
2020-07-29 19:49
2020-07-29 19:55
2020-07-29 19:59
2020-07-29 20:06
2020-07-29 20:11
2020-07-29 21:36