我收到此警告:数组函数参数上的 sizeof 将返回“const char *”的大小,而不是“const char []”[重复]

2023-12-31

可能的重复:
为什么 sizeof(param_array) 是指针的大小? https://stackoverflow.com/questions/11622146/why-sizeofparam-array-is-the-size-of-pointer

我是 C 新手,我收到了警告clang编译我的代码时:

#include<stdio.h>

char *strcpy (char destination[],const char source[]);
int main(void) {
    char str1[] = "this is a very long string";
    char str2[] = "this is a short string";
    strcpy(str2, str1);
    puts(str2);
    return 0;
}
char *strcpy (char destination[], const char source[]) {
    int size_of_array = sizeof source / sizeof source[0];
    for (int i = 0; i < size_of_array; i++) {
        destination[i] = source[i];
    }
    return destination;
}

我不知道以下警告是什么意思:

string_copy_withou_pointer.c:12:29: warning: sizeof on array function parameter
      will return size of 'const char *' instead of 'const char []'
      [-Wsizeof-array-argument]
        int size_of_array = sizeof source / sizeof source[0];
                                   ^
string_copy_withou_pointer.c:11:46: note: declared here
char *strcpy (char destination[], const char source[]) {

任何想法?


此警告告诉您,如果您致电sizeof(char[])你不会得到数组的大小,而是得到a的大小char*指针。

这意味着你的变量size_of_array将是错误的,因为它不代表真实数组的大小。

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

我收到此警告:数组函数参数上的 sizeof 将返回“const char *”的大小,而不是“const char []”[重复] 的相关文章

  • 使用 gcc 在 Linux 上运行线程构建块 (Intel TBB)

    我正在尝试为线程构建块构建一些测试 不幸的是 我无法配置 tbb 库 链接器找不到库 tbb 我尝试在 bin 目录中运行脚本 但这没有帮助 我什至尝试将库文件移动到 usr local lib 但这又失败了 任何的意见都将会有帮助 确定您
  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • STL 迭代器:前缀增量更快? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的预增量比后增量快 正确吗 如果是 为什么呢 https stackoverflow com questions 2020184 preincrement faster than postinc
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • SwiftUI 依赖注入

    我有一个 SwiftUI 应用程序 它是一个基于选项卡的应用程序 struct Tab View View var body some View TabView Main1 View tabItem Text Blah 1 Image Ta
  • 如何在useEffect中向useRef添加事件监听器

    我正在构建一个自定义挂钩 我想在其中添加事件侦听器到引用 但我不确定如何正确清理 因为listRef and listRef current可以为空 export const myHook MyHook gt const listRef u
  • Poetry 未使用正确版本的 Python

    我最近安装了 Pyenv 和 Poetry 并想创建一个新的 Python 3 8 项目 我已经设置了global and localpython 的版本为3 8 1使用适当的 Pyenv 命令 pyenv global 3 8 1例如 当
  • 如何从 Azure Active Directory 获取邮递员中的用户角色声明?

    我在我的 Azure AD 帐户中添加了一些用户 我想通过以声明的形式从 Postman 调用 Azure API 来获取这些用户的角色和用户信息 我尝试使用以下参数调用以下 URL https login microsoftonline
  • 从列表中删除对象 - 包含字符串 - 比较列表

    我的问题是 如何通过将对象与第二个列表进行比较来从列表中删除对象 List1 第一个列表包含电子邮件地址 List2 第二个列表包含仅域格式为 domain com etc 我想从第一个列表中删除包含第二个列表中的域的对象 电子邮件 例如
  • 在 R 中播种用户提供的随机数生成器

    我在 R 中播种用户定义的 RNG 时遇到了一些麻烦 看起来 set seed 123 kind user normal kind user 实际上并没有通过123到用户定义的 RNG 初始化 我回到了可用的文档 Random user并尝
  • 可以使用单个命令在 Eclipse 中重命名多个 Java 包吗?

    我在 Eclipse 中的 Java 项目结构如下所示 myproject src main java com mypackage mysubpackage1 com mypackage mysubpackage2 com mypackag
  • 意外发生致命信号 16 (SIGSTKFLT)

    今天我遇到了一个奇怪的问题 我在三台设备上安装了我的应用程序 华硕 Transformer Pad Infinity TF700T 三星 I9082 Galaxy Grand Duo LG Optimus L7 II 双 p715 首先 我
  • 64 位应用程序与 32 位进程通信

    我有使用 32 位第三方库的 32 位应用程序 现在我必须将我的应用程序设为 64 位 以便它可以利用 64 位地址空间 大内存 由于我无法将 32 位库加载到 64 位应用程序进程中 因此我正在考虑在第三方库上创建 32 位可执行包装器
  • 忽略 python 文件的其余部分

    我的 python 脚本通常在文件的第一部分包含 可执行代码 函数 类等 在末尾包含 测试代码 交互式实验 I want python py compile pylint c 完全忽略最后的实验内容 我正在寻找类似的东西 if 0 for
  • 如何混合两个ARGB像素?

    如何混合两个 ARGB 像素 Example 这里 A 是 带有 Alpha 的红色 B 是 带有 Alpha 的蓝色 取自您获得图像的同一篇维基百科文章 转换为 0 到 255 范围内的值 rOut rA aA 255 rB aB 255
  • git svn windows linux 空格问题

    我在 Linux 上使用 git 带有 git svn 而一位同事在 Windows 上使用 svn 很多次 git 都会报告空格问题 事实上 由于这些问题 它无法提交线性历史记录并产生合并冲突 在 Windows 和 Linux 上配置
  • 如何将参数传递给用 ActionScript 编写的自定义组件

    我有一个用 ActionScript 编写的自定义组件 它有一个需要一些参数的构造函数 我想像这样在 mxml 中包含该自定义组件 主 mxml
  • 最佳 Ansi Escape 开头

    哪个 Ansi 转义序列是最便携和 或最好的 为什么 1 u001B 32 1mThis is bright green u001B 0m 2 x1B 33 1mThis is bright yellow x1B 0m 3 e 35 4 1
  • 变量的类型(列表)无效

    我正在尝试在 R 中运行方差分析模型 我有一个包含 3 行和 12 列的数据文件 每行都是解释变量特定水平的数据 单元格 i j 是级别 i 的第 j 个响应 该文件的扩展名为 dat 我正在运行以下 R 代码来尝试获取 36 x 2 数据
  • 使用Scrapy从网站查找并下载pdf文件

    我的任务是使用 Scrapy 从网站上提取 pdf 文件 我对 Python 并不陌生 但 Scrapy 对我来说却很陌生 我一直在尝试控制台和一些基本的蜘蛛 我找到并修改了这段代码 import urlparse import scrap
  • 关于 C/C++ 编译器优化我可以假设什么?

    我想知道当我将遗留代码 库代码或示例代码集成到我自己的代码库中时 如何通过重新散列源代码来避免浪费时间和避免拼写错误的风险 如果我举一个简单的例子 基于图像处理场景 你可能会明白我的意思 实际上 发现我正在集成这样的代码片段并不罕见 for
  • 除了 6 个配置文件(HFP、PBAP、A2DP、AVRCP、PAN、HID)之外,iOS 中是否使用任何受支持的蓝牙配置文件?

    除了 6 个配置文件 HFP PBAP A2DP AVRCP PAN HID 之外 iOS5 中是否有支持的蓝牙配置文件 我可以使用SPP 串行端口配置文件 来开发iPhone应用程序吗 如果要使用Serial Port Profile S
  • 如何通过代码禁用 Firebase 项目的用户帐户?

    我可以从控制台 firebase 网页 成功禁用项目的用户帐户 但是应用程序中的用户如何在他想要的时候通过代码禁用您自己的用户帐户 另外 我在 firebase 的新文档中找不到帮助 回答这个问题有点老了 但对于那些寻找相同答案的人来说 他
  • 我收到此警告:数组函数参数上的 sizeof 将返回“const char *”的大小,而不是“const char []”[重复]

    这个问题在这里已经有答案了 可能的重复 为什么 sizeof param array 是指针的大小 https stackoverflow com questions 11622146 why sizeofparam array is th