我正在研究一个简单的程序,该程序将获取给定变量的内存地址,最多为64位(无符号长整数)。目前这是我有的代码,但由于某种原因,编译器正在向我发出警告,说我的方法正在返回本地变量的地址,这是我的意图。函数返回本地变量的地址[-Wreturn-local-addr]
int main(int argc, char *argv[])
{
char* one = argv[1];
long memaddress = address(one);
}
uint64_t address(char * strin)
{
return (uint64_t) &strin;
}
我该如何缓解此警告,并且可能会导致此警告出现?
这是一个小的功能,为什么不报警;吨你去MACRO? –
@SouravGhosh:从不使用函数可以工作的宏。但那也是无稽之谈。 – Olaf
@Olaf,你打算做什么?我计划在地址函数中实现更多功能,但我会尽量简单地提出问题。我将如何将地址传递给main? – WasabiCannon