- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在开发一个简单的程序,它将获取给定变量的内存地址,最多 64 位(unsigned long)。目前这是我的代码,但出于某种原因,编译器向我发出警告,说我的方法正在返回局部变量的地址,而这正是我想要的。
int main(int argc, char *argv[])
{
char* one = argv[1];
long memaddress = address(one);
}
uint64_t address( char * strin)
{
return (uint64_t) &strin;
}
我将如何减轻此警告以及可能导致此警告出现的原因?
最佳答案
你可以想象函数定义和它的调用
long address = address(one);
//...
uint64_t address( char * strin)
{
return (uint64_t) &strin;
}
以下方式
long address = address(one);
//...
uint64_t address( void )
{
char * strin = one;
return (uint64_t) &strin;
}
如您所见,变量 strin
是函数的局部变量。退出函数后会被销毁。因此退出该函数后其地址将无效。编译器会就此警告您。
要避免警告,您至少可以按以下方式编写函数
uint64_t address( char ** strin)
{
return (uint64_t) &*strin;
}
并称它为
long address = address(&one);
关于c - 函数返回局部变量的地址 [-Wreturn-local-addr],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40613359/
我是集群新手。我看不出这两个选项之间的区别?我认为advertise addr被其他节点用来相互通信,listen addr被主机用来加入集群。所以我认为这两个地址永远是相同的。我说得对吗? 最佳答案
关于 Wireshark 中的过滤器,!(ip.addr == 192.0.2.1) 和 (ip.addr != 192.0.2.1) 有什么区别?检查结果时,结果不一样,我不知道为什么... 另外,
在 Ubuntu 16.04 中,我运行了 ifconfig 并在 inet addr:MY_IP 中看到了我的外部 IP。 我试图通过这些方式将它“挖掘”到一个变量中: ipa=$(ifconfig
如何做到这一点?我想知道如何在 Go 中将字符串解析为 net.Addr。如我所见,只有 CIDR、IP 和 MAC 的解析器。 最佳答案 使用 net.Resolve* 函数解析地址。函数返回满足
我正在为一个 friend 编写一个游戏(《我的世界》)的模组。为了执行 mod 的指定功能,我需要确保在特定时间内可以访问服务器,我使用 InetAddress 来执行此操作,但每次使用该命令时都会
我正在学习 C,经过大量研究(阅读 K&R 书(仍在阅读),阅读一些文章和一些关于 SO 的答案)并采取一些措施后,我在真正理解 C 中的数组和指针方面遇到了一些麻烦一路上有大量的笔记,我决定做一个小
在网上冲浪时,我发现了一个发送 GET 请求的 C++ 示例。这段代码中我无法理解的部分是为什么(请参阅粗体部分)变量 addr 是类型转换的。我知道该函数只接受某种类型。但为什么要使用一种类型然后将
当我尝试启动我的数据库时,mongodb 正在记录以下消息: 2014-08-12T08:42:17.522-0300 [initandlisten] journal dir=/www/mongodb
我有一个相当奇怪的用例,我想在发送请求之前覆盖客户端的属性 Grpc.TRANSPORT_ATTR_REMOTE_ADDR 。 在服务器端,我接收来自许多客户端的请求,并使用此属性提取它们的来源。然后
我正在尝试读取一些 xtensa 汇编代码,但被 L32R 指令难住了: 例如给定以下行: 0000 2f04 : 2f0c: ffef21 l32r a2, 2e
当我发现 Addr# 时,我最近一直在寻找各种 Haskell 怪癖,比如未装箱类型等等类型。 GHC.Prim 包是这样描述的: An arbitrary machine address assum
我想通过原始套接字发送 TCP 数据包,然后我被 tcp header 的校验和字段卡住了。由于我不知道如何找出原始套接字使用的实际IP地址,因此似乎不可能构造TCP伪 header 来计算校验和。
我在 Windows 中进行客户端开发,在 Linux 中进行服务器端开发(我以虚拟方式运行)。我的客户端套接字设置为连接到我的 linux 服务器的 inet addr(使用 localhost 似
我想通过这个函数获取页面地址。 virt_to_page(addr); 但是编译的时候出现了这个错误 Error implicit declaration of function virt_to_pa
这个问题在这里已经有了答案: Returning array declared in function returns address of local variable in C? (4 个答案)
我正在开发一个简单的程序,它将获取给定变量的内存地址,最多 64 位(unsigned long)。目前这是我的代码,但出于某种原因,编译器向我发出警告,说我的方法正在返回局部变量的地址,而这正是我想
最近在看《the shellcoder's handbook》这本书,对c的理解很深,但是最近遇到一段代码,看不懂。 这是一段代码: char a[4]; un
我一直在使用 Go 教程 here但是 main 函数的最终版本为我返回了一个错误: $ go build wiki.go # command-line-arguments ./wiki.go:97:
我可以使用 RTTI 和 Addr(Field) 获得相同的字段指针吗? 例如: TSomeClass 私有(private)的 FSomeField:整数; ... 1) MyPointer = A
我必须将这样的字符串“FE80:0000:0000:0000:0000:0000:0000:0012”转换为不带“:”的 const uchar *addr。 我尝试在没有“:”的情况下拆分字符串并像
我是一名优秀的程序员,十分优秀!