C语言安全编码数组记法的一致性
来源:爱站网时间:2019-08-02编辑:网友分享
C语言中,数组必须是静态的,也就是说数组的大小必须在程序运行之前确定,由于C语言不具备Java等语言静态分析工具的功能,所以可以严格检查数组下标的范围,今天爱站技术频道小编就为大家介绍C语言安全编码数组记法的一致性,一起来看看吧!
C语言中,数组必须是静态的,也就是说数组的大小必须在程序运行之前确定,由于C语言不具备Java等语言静态分析工具的功能,所以可以严格检查数组下标的范围,今天爱站技术频道小编就为大家介绍C语言安全编码数组记法的一致性,一起来看看吧!
示例代码如下:
//main.c #include<stdlib.h> enum {ARRAYSIZE = 100}; char *a; void insert_a(void); int main(void) { a = (char*)malloc(ARRAYSIZE); if(a == NULL) { //处理分配错误 } insert_a(); return 0; } //insert_a.c char a[]; void insert_a(void) { a[0] = 'a'; }
解决方案如下:
//insert_a.h enum {ARRAYSIZE = 100}; extern char *a; void insert_a(void); //insert_a.c #include "insert_a.h" char *a; void insert_a(void) { a[0] = 'a'; } //main.c #include<stdlib.h> #include"insert_a.h" int main(void){ a = (char*)malloc(ARRAYSIZE); if(a == NULL) { //处理分配错误 } insert_a(); return 0; }
以上就是爱站技术频道小编介绍的关于C语言安全编码数组记法的一致性,大家都还满意吗?如果你还想了解更多技术方面的知识,请随时关注爱站技术频道!
上一篇:浅析VC++中的头文件包含的问题
下一篇:详解C语言栈的表示与实现方法