我试图迫使编译器在堆栈中分配内联字符串:
此代码在.rdata节中分配字符串:
foo("test");
虽然此代码在堆栈中分配了字符串:
char szt1[] = "test1";
foo(szt1);
这正是我要强制的。
如何强制编译始终在堆栈中分配数组?
我正在使用gcc。
谢谢
最佳答案
没有很好的方法来执行此操作,并且可能没有太多充分的理由希望这种行为。
如果您不希望该字符串存在于数据段中,则最能做的是一次分配一个自动的char
数组并为其分配字符,一次。
char hello[6] = {};
hello[0] = 'h'; hello[1] = 'e'; hello[2] = 'l'; hello[3] = 'l'; hello[4] = 'o';
关于c++ - 强制在堆栈而不是全局中分配char [](字符串),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28512443/