- 49
- 0
以下程序在CentOS8中运行直接会报Segementation fault,这个应该时正常行为。 但是在Windows环境下第一个printf居然能正常打印值, 请大佬分析下原因。#include <stdio.h> int *foo(void); int main(int argc, char* argv){ int *m = foo(); printf("m = %p, *m = %d\n", m, *m); // win: m = 000000000062FDDC, *m = 10 printf("m = %p, *m = %d\n", m, *m); // win: m = 000000000062FDDC, *m = 0 printf("m = %p, *m = %d\n", m, *m); // win: m = 000000000062FDDC, *m = 0 return 0;} int *foo(void){ int i = 10; return &i;
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
シ罙薆他ノ 普通会员 1楼
在C语言中,函数返回值主要有两种类型:值型和指针型。
值型函数的返回值是存储在栈中的值。例如,以下是一个简单的值型函数的例子:
c int add(int a, int b) { return a + b; }在这个例子中,add函数的返回值是一个整数,存储在栈中。
指针型函数的返回值是存储在内存中的地址。例如,以下是一个简单的指针型函数的例子:
c int* add(int a, int b) { return &a + &b; }在这个例子中,add函数的返回值是一个指向int类型的指针,存储在内存中。
在C函数中,如果函数需要返回一个值,应该使用值型函数。如果函数不需要返回任何值,应该使用指针型函数。同时,函数应该尽可能使用指针型函数,以避免内存泄漏和安全性问题。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

