- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
众所周知,在 C 中作为参数传递时,数组会退化为指针。但是数组的数组只会退化为数组的指针;因此,如果我们将原始数组本身包含在一个数组中,我们可以在将封闭数组传递给函数后检索原始数组长度。这是一个测试这个想法的程序:
/* array_workaround.c */
#include <stdio.h>
void printsize(char array_pointer[][10]);
int main(void)
{
char a[10];
for(char i = 0; i < 10; i++)
a[i] = i;
char a_p[1][10] = {a};
printsize(a_p);
return 0;
}
void printsize(char array_pointer[][10])
{
printf("%lu\n", sizeof(array_pointer[0]));
}
运行时,它打印出正确的值(10
),但编译器给出了这个警告:
array_workaround.c:12:24: warning: incompatible pointer to integer conversion
initializing 'char' with an expression of type 'char [10]' [-Wint-conversion]
char a_p[1][10] = {a};
当然,这种“解决方法”的问题在于它要求将数组的大小硬编码到接收它的函数中,这有点违背了整个目的。但是,这确实意味着检查数组的大小是否正确,而不必将长度作为单独的参数传递...(只要它始终为 10!大声笑)。
那么警告是怎么回事?编译器是否“不够聪明”,无法知道这里发生的事情不会破坏任何数据?或者我只是以某种方式走运?任何人都可以找到使它成为实际解决方法的方法,这样您就不必在其中硬编码数字 10 了吗?
最佳答案
在
char a_p[1][10] = {a};
a
的值,它是a
的基址,类型为char
,用于初始化a_p[0][0]
,它应该是一个 char
,这就是编译器向您发出转换警告的原因。
关于c - 为什么这个数组大小 "workaround"给我一个警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22346023/
出于某种原因,有两个 div带有 ID 的“cye-workaround-body”和“cye-workaround-body-image”,它们被添加到 下面一些网站,它在页脚下方创建了一个大空间
我已经有了一个解决方案,但只适用于 JavaScript。不幸的是,Twig 中不存在 while 循环。 我在 JavaScript 中的 Twig-target: var x = 10; // t
由于 Play 模板层缺乏泛型支持,因此遇到了 catch 22 的情况。 我有几个购物车屏幕,它们都需要一个用户和一个付款 + 可选的自定义字段。 case class Conference(
我正在阅读一篇关于“Scott Meyers 的双重检查锁定的危险”的论文。 http://www.aristeia.com/Papers/DDJ_Jul_Aug_2004_revised.pdf 作
following example适用于 Firefox 4,但不适用于 Internet Explorer 8: HTML: A B C CSS: div:not(.first) { col
我正在使用 markdonw v2,rmarkdown包裹。在整个 .Rmd 文件中,我创建了指向网站或图像的链接 [Link1][pathLink1] ![Image1][pathImage1] 然
众所周知,在 C 中作为参数传递时,数组会退化为指针。但是数组的数组只会退化为数组的指针;因此,如果我们将原始数组本身包含在一个数组中,我们可以在将封闭数组传递给函数后检索原始数组长度。这是一个测试这
使用Python watchdog文件系统事件监视库我注意到,在 Windows Server 2003 下使用时,它会进入“轮询模式”,从而停止使用异步操作系统通知,因此,在大量文件更改下会严重降低
是否有任何 IE 的变通方法使我能够使用 border-image?我正在开发一个网站,它在除 IE 之外的所有浏览器中都能正常工作。我需要模仿这些酒吧 我可以使用 ie-css3.htc hack
这是我的场景:我有一系列 Activity .我对那些 Activity 设置了超时这将断开用户的连接,以防它暂时处于非 Activity 状态。但我想将用户重定向到最后一个屏幕,以防他登录 当我断开
目前,我的主要网站上有 50 多个微型网站。也就是说,我有一个主要的顶级域,并且在该域的子文件夹中有 50 多个微型站点(并且还在不断增长)。 以前,我为单独的微型站点(不同的 GA 跟踪 ID)使用
好的,所以这个问题主要与:有没有更好的方法来做到这一点? 我有一个电话簿应用程序,您可以向其中添加用户、删除用户等,并且为每个人分配一个不同的 ID#。 Person 类将 lastIDused 存储
当 float 元素有边距时,我遇到了 WebKit 渲染 float 元素宽度的错误。 以下呈现在 Firefox (3.6) 和 WebKit (Chromium 5.0) 中的预期效果:
我在 iframe 外部有一个可拖动的东西,在其中有一个可放置的目标。在这里,我将 iframe 显示为包含由其 src 属性加载的 HTML 片段。 我使
考虑 3 个表 - Student(Id INT NOT NULL PRIMARY KEY, Name VARCHAR(100)); Test(Id INT NOT NULL PRIMARY KEY,
我发现 LESS 有一个有问题的 JavaScript 求值器,至少我使用它的方式是这样,即在将 *.less 文件上传到 Web 服务器之前在客户端将它们编译成 *.css。 我知道编译可能更经常在
有这个 where 子句: 第一个和第二个占位符?可以有值: 1 || NULL 第三个占位符是动态添加的(数组) IF(ISNULL(?),1,xy.id) IN (IF(ISNULL(?
我试图仅在页面投影到墙上时(通过投影仪,当有人进行演示时)才将样式应用于页面。目前,我只能在全屏模式下在 Opera 中获得它。 有没有办法让@media projection在其他浏览器中生效?另外
所以我正在尝试将动画 CSS 放入电子邮件签名中。我让它在 iOS/Mac 电子邮件客户端中工作,但 Gmail 和 Outlook 似乎阻止了部分代码。有没有人知道解决方法? 我现在在电子邮件中使用
我目前在 chrome 中使用伪选择器 :focus-within 但是根据 caniuse.com它在 Edge 和 IE 中不可用,我找到了一个巧妙的解决方法: .focus-within-cla
我是一名优秀的程序员,十分优秀!