use*_*889 5 c++ string stack gcc
我试图强制编译器在堆栈中分配内联字符串:此代码在 .rdata 部分分配字符串:
foo("test");
Run Code Online (Sandbox Code Playgroud)
当此代码在堆栈中分配字符串时:
char szt1[] = "test1";
foo(szt1);
Run Code Online (Sandbox Code Playgroud)
这正是我想要强迫的。
如何强制编译始终在堆栈中分配数组?我正在使用海湾合作委员会。
谢谢
没有什么好的方法可以做到这一点,并且可能没有太多好的理由希望这种行为。
如果您不希望该字符串存在于数据段中,您可以做的最接近的操作是分配一个自动数组char
并向其分配字符,一次一个。
char hello[6] = {};
hello[0] = 'h'; hello[1] = 'e'; hello[2] = 'l'; hello[3] = 'l'; hello[4] = 'o';
Run Code Online (Sandbox Code Playgroud)