• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C语言安全编码数组记法的一致性

C语言安全编码数组记法的一致性

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了高中英语单词串记法,西国记法,循环小数的简便记法,常用数集及其记法,指标记法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

对C语言程序来说,在同一文件中时,void func(char *a);  和  void func(char a[]); 完全等价

但在函数原型之外,如果一个数组在一个文件中声明为指针,在另一个不同的文件中声明为数组,那么它们是不等价的

示例代码如下:

//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';
}

</div>

解决方案如下:

//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;
}
</div> </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C语言安全编码数组记法的一致性

相关文章

  • 2017-05-28详解C++中变量的初始化规则
  • 2017-05-28用VC++6.0的控制台实现2048小游戏的程序
  • 2017-05-28C语言使用stdlib.h库函数的二分查找和快速排序的实现代码
  • 2017-05-28深入分析C语言分解质因数的实现方法
  • 2017-05-28C++中求组合数的各种方法总结详解
  • 2017-05-28C++ 整数拆分方法详解
  • 2017-05-28编写C++程序使DirectShow进行视频捕捉
  • 2017-05-28C++数据结构之实现循环顺序队列
  • 2017-05-28Objective-C 消息传递机制详解
  • 2017-05-28浅析结束程序函数exit, _exit,atexit的区别

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C++数据结构与算法之判断一个链表是否为回文结构的方法
    • win32 api实现简单的消息窗口示例
    • 深入串的模式匹配算法(普通算法和KMP算法)的详解
    • 关于C++静态成员函数访问非静态成员变量的问题
    • static_cast,dynamic_cast,reinterpret_cast,const_cast的区别及用法详解
    • 用C实现PHP扩展 Image_Tool 图片常用处理工具类的使用
    • 函数式宏定义与普通函数的区别
    • 封装常用正则表达式的用法
    • C++动态规划之背包问题解决方法
    • 深入理解双指针的两种用法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有