编程语言书籍解释了在堆栈上创建了值类型,并且在堆上创建了引用类型,而没有解释这两者是什么.我还没有看清楚这个问题.我理解堆栈是什么.但,
language-agnostic heap stack memory-management dynamic-memory-allocation
void f()
{
char *c = "Hello World!"
}
Run Code Online (Sandbox Code Playgroud)
字符串存储在哪里?它的属性是什么?我只知道它是一个常数,还有什么?我可以从功能体内部返回吗?
假设我有一个具有以下规范的函数:
void example(char* str)
Run Code Online (Sandbox Code Playgroud)
如果我传入一个字符串参数,例如:
example("testing");
Run Code Online (Sandbox Code Playgroud)
是"测试"在堆上动态分配的价值,所以我就可以说取得了函数调用"榜样"被破坏的范围后使用它(和需要稍后释放它),或者是本地堆栈上的变量,所以我需要使用malloc创建一个新的字符串,并将值存储在那里,如果我希望它继续存在,比如一个hashmap?
谢谢.