malloc error:初始值设定元素不是常量
#include <stdio.h>
#include <stdlib.h> char *buf = (char *)malloc(BUFSIZ); setbuf(stdout,buf);
printf("Set STDOUT full buffer OK!\n");
setbuf(stdout,NULL);
printf("Set STDOUT no buffer OK!\n");
运行出错:
[zbq@centos6~/test]$ gcc buffer.c
buffer.c:: 错误:初始值设定元素不是常量
buffer.c:: 警告:数据定义时没有类型或存储类
buffer.c:: 警告:函数声明中出现形参名却未指定类型
buffer.c:: 错误:与‘setbuf’类型冲突
/usr/include/stdio.h:: 附注:‘setbuf’的上一个声明在此
buffer.c:: 错误:expected declaration specifiers or ‘...’ before string constant
buffer.c:: 警告:数据定义时没有类型或存储类
buffer.c:: 错误:与‘printf’类型冲突
buffer.c:: 附注:带有省略号的形参列表无法与空形参名列表声明匹配
buffer.c:: 错误:expected ‘)’ before ‘(’ token
buffer.c:: 错误:expected declaration specifiers or ‘...’ before string constant
buffer.c:: 警告:数据定义时没有类型或存储类
buffer.c:: 错误:与‘printf’类型冲突
buffer.c:: 附注:带有省略号的形参列表无法与空形参名列表声明匹配
后来百度得知原因是:
char *buf = (char *)malloc(BUFSIZ);
全局变量buf 的初始化的值应该为一个常量,而malloc返回值是不定的(分配成功则返回指向被分配内存的指针,此存储区中的初始值不确定,否则返回空指针NULL),编译器在编译时无法断言start的初始值是多少,于是就自作主张的用0的代替了。这应该属于全局变量和局部变量的初始化的差异所在的地方。
只需将char *buf 改成局部变量就可以编译通过了。
http://zhidao.baidu.com/link?url=WS7VNppnzd1N3YKqL4R6e6jZwf6le_cjkeE5YoXh0pWOAd0oAzlYYM_VEQOzpn2loqufsXaECZBZPs9zBICLea
malloc error:初始值设定元素不是常量的更多相关文章
- 属性“dataProvider”有多个初始值设定项。(注意:“dataProvider”是“mx.charts.BarChart”的默认属性)。
1.错误描写叙述 属性"dataProvider"有多个初始值设定项.(注意:"dataProvider"是"mx.charts.BarChart&q ...
- C#3.0新特性:隐式类型、扩展方法、自动实现属性,对象/集合初始值设定、匿名类型、Lambda,Linq,表达式树、可选参数与命名参数
一.隐式类型var 从 Visual C# 3.0 开始,在方法范围中声明的变量可以具有隐式类型var.隐式类型可以替代任何类型,编译器自动推断类型. 1.var类型的局部变量必须赋予初始值,包括匿名 ...
- C#对象和集合初始值设定项
对象初始值设定项 使用对象初始值设定项,你可以在创建对象时向对象的任何可访问字段或属性分配值,而无需调用后跟赋值语句行的构造函数. 利用对象初始值设定项语法,你可为构造函数指定参数或忽略参数(以及括号 ...
- C#3.0新增功能06 对象和集合初始值设定项
连载目录 [已更新最新开发文章,点击查看详细] 使用 C# 可以在单条语句中实例化对象或集合并执行成员分配. 对象初始值设定项 使用对象初始值设定项,你可以在创建对象时向对象的任何可访问字段或属 ...
- C#中异常:“The type initializer to throw an exception(类型初始值设定项引发异常)”的简单分析与解决方法
对于C#中异常:“The type initializer to throw an exception(类型初始值设定项引发异常)”的简单分析,目前本人分析两种情况,如下: 情况一: 借鉴麒麟.NET ...
- “System.Data.SqlClient.SqlConnection”的类型初始值设定项引发异常---解决方案
"System.Data.SqlClient.SqlConnection"的类型初始值设定项引发异常 问题出在了 .net 的C:\WINDOWS\Microsoft.NET\Fr ...
- Memcached Memcached.ClientLibrary.SockIOPool”的类型初始值设定项引发异常
又一次遭遇"xxx类型初始值设定项引发异常" 下了个c#实现的轻量级IoC开源项目,可是在本地使用时发现一运行就捕捉到"类型初始值设定项引发异常"的异常信息,调 ...
- “System.Transactions.Diagnostics.DiagnosticTrace”的类型初始值设定项引发异常[WCF]
未处理System.TypeInitializationException HResult=-2146233036 Message=“System.ServiceModel.Diagnostics ...
- System.Data.Entity.Internal.AppConfig 类型初始值设定项引发异常
在一开始时将connectionStrings 写在了configSections之上如下图一示,结果抛出:“System.Data.Entity.Internal.AppConfig”的类型初始值设 ...
随机推荐
- html5,加密元素
<form action=""> 账号:<input type="text" name="user"> ...
- Xstream解析XML
<oschina> <catalog>1</catalog> <newsCount>0</newsCount> <pagesize&g ...
- 测试 Prism 语法高亮
测试 Prism 对 C 语言的语法高亮 #include <stdio.h> #include "math.h" int main(void) { long int ...
- [MKRCVCD]Burning SDK report AddFile error
在使用Pipe通信的使用,我使用GetProcessExitCode这个函数来获取返回值.而ExitCode的定义为DWORD DWORD的原型为unsigned long,在32位程序中,DWORD ...
- 《Spark 官方文档》机器学习库(MLlib)指南
spark-2.0.2 机器学习库(MLlib)指南 MLlib是Spark的机器学习(ML)库.旨在简化机器学习的工程实践工作,并方便扩展到更大规模.MLlib由一些通用的学习算法和工具组成,包括分 ...
- AOP和IOC的实现原理(用到的设计模式)
文章来源:http://blog.csdn.NET/longyulu/article/details/36174979 用过spring的朋友都知道spring的强大和高深,都觉得深不可测,其实当你真 ...
- Auty 2017——WebMonitor接口检测平台
[本文出自天外归云的博客园] 2016Auty诞生 Auty接口测试框架系列 2017一个新的开始 今天早上决定要做一个接口检测平台,现在是2017.1.5日凌晨2:12.我在网易北京研发中心,准备睡 ...
- UVA 11464 偶数矩阵
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- 按钮显示PopupWindow,setOutsideTouchable(true)时,点击按钮再次打开的问题
先给大家看看这个:http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E7%9F%A5%E8%AF%86%E5%BA%93/21462.shtml ...
- 关于html转pdf
本篇作为一个备忘,记录一下html转pdf中遇到的问题. 没有具体做这个东西的时候不知道,网络上能将html转换成pdf的资源并不太多,使用上有很多都存在一些问题.能完美将一个站点中的页面(这里说一个 ...