我可以通过函数更改初始化的字符指针吗?

2024-05-22

这是我的main.c:

#include <stdio.h>

void changeStuff(char *stuff){
    stuff=  "Hello everyone";
}

int main(int argc, char **argv) {
    char *stuff;
    changeStuff(stuff);
    printf(stuff);
    return 0;
}

当我构建这个时,我收到以下警告:

warning: ‘stuff’ is used uninitialized in this function [-Wuninitialized]

当我运行这个程序时,没有打印任何内容。

由于似乎无法定义char*声明后没有任何值,如何更改 a 的值char*传递给函数?


在 C 中,函数参数是按值传递的。为了修改指针值,您需要将指针传递给指针,例如:

#include <stdio.h>

void changeStuff(char **stuff){
    *stuff=  "Hello everyone";
}

int main(int argc, char **argv) {
    char *stuff;
    changeStuff(&stuff);
    printf("%s\n", stuff);
    return 0;
}

请注意,直接将用户定义的值传递给printf(). See: 如何利用格式字符串漏洞? https://stackoverflow.com/q/7459630/1275169

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以通过函数更改初始化的字符指针吗? 的相关文章

随机推荐

  • Maven 插件前缀解析如何工作?为什么它解决了“findbugs”而不是“jetty”?

    我正在使用 Maven 进行一些测试 并意识到我可以执行findbugsFindbugs 插件的目标 无需将插件添加到 POM 文件 另一方面 当我需要运行runJetty 插件的目标 我被迫将插件添加到 POM 文件中 否则构建失败 为什
  • 用于全文搜索和 2 亿多条记录的数据库

    我即将创建一个包含至少 2 亿个条目的庞大数据库 数据库需要可使用全文进行搜索 并且速度应该很快 我的数据库从许多不同的数据源获取数据 我需要定期导入新的或更新的数据 将我的所有数据存储在像 mysql 这样的关系数据库中 然后创建一个 n
  • Mercurial 与 Visual Studio 2010 的白痴清单

    所以我是一个源代码控制白痴 所以请用这个清单来幽默我 我最终决定使用Mercurial TortoiseHg VS2010 HgScc包 http bitbucket org zzsergant hgsccpackage wiki Home
  • (发件人:TObject)

    发件人 TObject 是什么意思 如 procedure TForm1 Button1Click Sender TObject var s Integer begin end Sender 是对触发事件的组件的引用 在这种情况下 Send
  • Android 缩放和密度问题

    Update 一些研究表明 华硕 Transformer TF700T 高端 的像素密度应约为 224 因此 android 报告的 159 值要么是错误的 要么已被某种方式修改 system 中的 lcd 密度键 build prop 由
  • Spring Security 的 AJAX 请求给出 403 Forbidden

    我有一个基于spring boot spring security thymeleaf的网站 在某些情况下我也使用ajax 问题 我在 Spring Security 中使用表单登录安全性 在浏览器中 登录后我可以使用rest API GE
  • 如何更改ios中FBSDKLoginButton中的默认登录按钮?

    如何自定义 Facebook 中的登录按钮 我不想使用 Facebook 默认登录按钮 对于 SDK 4 0 您应该添加一个按钮 并在按钮操作中使用以下代码 IBAction loginButtonClicked id sender FBS
  • 如何将 java ArrayList 转换为等效的 double[] [重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Java 中从 List 转换为 double https stackoverflow com questions 6018267 how to cast from listdouble to
  • 在多个 angular.js 应用程序之间共享单个服务

    我正在构建一个电子商务网站 基于 shopify 并且使用多个小型 angularjs 应用程序来处理诸如快速购物车 愿望清单 过滤产品和其他一些较小项目之类的事情 我最初使用了一个大型应用程序 具有路由和所有内容 但当我没有完整的 RES
  • 缓存消息discord.js

    我想做一些反应角色 但为此 我必须缓存机器人启动之前发送的消息 我尝试过channel messages fetch 但到目前为止还没有奏效 我当前的代码 client on messageReactionAdd async reactio
  • 如何在 Metro 应用程序中从 Web 上下文(Iframe)发出 javascript 警报。

    在我的 Metro 应用程序中 我使用 iframe 加载 Web 应用程序 基本上是一个包含一些控件的表单 最后用户单击 完成 按钮 我想显示警报 我在地铁应用程序中知道 我们可以使用 new Windows UI Popup Messa
  • 如何停止或更改 Spring Integration Poller 的延迟

    我正在使用 Spring Integration 使用以下配置从目录中读取文件 但是 一旦找到任何文件 我希望停止轮询器 直到服务不再重新启动 有什么方法可以在运行时更改轮询器延迟或在运行时启动 停止轮询器 Bean public Mess
  • SQL Server 触发器从多个表中删除一条记录

    我知道这可以使用外键来完成 但我无法添加它们 或者当我插入新记录时会发生奇怪的事情 这个数据库中有很多存储过程 但我不知道它们是做什么的 因为我对存储过程一无所知 我希望有人可以帮助我找到一个触发器 当我从 Product 表中删除特定的
  • HTTPURLConnection 不遵循从 HTTP 到 HTTPS 的重定向

    我不明白为什么JavaHttpURLConnection不遵循从 HTTP 到 HTTPS URL 的 HTTP 重定向 我使用以下代码来获取页面https httpstat us https httpstat us import java
  • 通过 Amazon SQS 将压缩文本从 PHP 发送到 NodeJS

    我似乎一直坚持通过 Amazon SQS 将压缩消息从 PHP 发送到 NodeJS 在 PHP 方面我有 SQS gt sendMessage Array QueueUrl gt queueUrl MessageBody gt artic
  • jQuery Signature Pad:使用类型化版本获取 JSON 输出

    我一直在使用 Thomas J Bradley 的 jQuery Signature Pad 插件来捕获绘制的签名 并且效果很好 我想做的是还允许输入签名如演示所示 http thomasjbradley ca lab signature
  • json文件格式的升级路径

    我们将 Java 应用程序的用户首选项存储在 JSON 文件中 使用Jackson http jackson codehaus org 随着我们继续开发该应用程序 我们将添加首选项 重命名首选项并删除过时的首选项 当用户将应用程序升级到下一
  • Spring @RestController 不设置带有响应的 cookie

    我有以下休息端点 我想将 cookie 与我的ResponseEntity 然而 在成功发送响应后 却找不到 cookie RequestMapping value myPath method RequestMethod POST publ
  • 单个查询删除并显示重复记录

    采访中提出的问题之一是 一张表有100条记录 其中 50 个 是重复的 是否可以用单个 查询删除重复记录 从表中以及选择和 显示剩余 50 条记录 这可以在单个 SQL 查询中实现吗 Thanks SNA 对于 SQL Server 你会使
  • 我可以通过函数更改初始化的字符指针吗?

    这是我的main c include