鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖

[已解决]*a[]

[复制链接]
发表于 2018-2-24 16:10:29 | 显示全部楼层
哥斯拉不说话 发表于 2018-2-24 16:03
还是原来的代码,改成 %ld 之后,什么警告都没有了,编译运行,都没问题啊,还是不清楚那个 *a[] 里应该 ...

uint8_t *a[17];

那么
*(a + 0)
*(a + 1)
*(a + 2)
*(a + 3)
.
.
.

*(a + 15)
*(a + 16)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-24 16:11:20 | 显示全部楼层

gcc 没有检查出这个问题
1>------ 已启动全部重新生成: 项目: tmp, 配置: Debug Win32 ------
1>main.c
1>c:\visualstudioprojects\tmp\tmp\main.c(14): warning C4789: 缓冲区“a”(大小为 68 字节)将溢出;4 字节将在偏移 96 时开始写入
1>c:\visualstudioprojects\tmp\tmp\main.c(15): warning C4789: 缓冲区“a”(大小为 68 字节)将溢出;4 字节将在偏移 128 时开始写入
1>c:\visualstudioprojects\tmp\tmp\main.c(16): warning C4789: 缓冲区“a”(大小为 68 字节)将溢出;4 字节将在偏移 160 时开始写入
1>c:\visualstudioprojects\tmp\tmp\main.c(17): warning C4789: 缓冲区“a”(大小为 68 字节)将溢出;4 字节将在偏移 192 时开始写入
1>tmp.vcxproj -> C:\VisualStudioProjects\tmp\Debug\tmp.exe
1>已完成生成项目“tmp.vcxproj”的操作。
========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-24 16:12:15 | 显示全部楼层
人造人 发表于 2018-2-24 16:07
uint8_t *a[17];

a是数组,数组里面有17个元素(0~16),每个元素都是一个指针,uint8_t类型的指针

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-24 16:14:18 | 显示全部楼层
*(a+8) = (uint8_t *)"11111111";
        *(a+16) = (uint8_t *)"22222222";
        *(a+24) = (uint8_t *)"33333333";
        *(a+32) = (uint8_t *)"44444444";
        *(a+40) = (uint8_t *)"55555555";
        *(a+48) = (uint8_t *)"66666666";

*(a+48) = (uint8_t *)"66666666";
是最大的一个 a + 48
那么
uint8_t *a[49];
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-24 16:14:45 | 显示全部楼层
人造人 发表于 2018-2-24 16:11
gcc 没有检查出这个问题

多谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-6 07:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表