免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8781 | 回复: 11
打印 上一主题 下一主题

自爆个错误,初始值设定元素不是常量 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-30 22:51 |只看该作者 |倒序浏览
全局变量不初始化的后果。

assembly_line_schedule.h:17: 错误:初始值设定元素不是常量
assembly_line_schedule.h:18: 错误:初始值设定元素不是常量


17 int *a1 = (int *) malloc((N + 1) * sizeof(int));
18 int *a2 = (int *) malloc((N + 1) * sizeof(int));

什么是初始化?初始化就是赋值,而不是分配空间?

论坛徽章:
0
2 [报告]
发表于 2011-11-30 23:35 |只看该作者
初始化就是在内存中开辟空房间啊,然后再再里面进行赋值啊.也就是装内容

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
3 [报告]
发表于 2011-12-01 00:01 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
4 [报告]
发表于 2011-12-01 00:16 |只看该作者
回复 3# pmerofc
是c, 我在想用那个 calloc()来代替它。

论坛徽章:
0
5 [报告]
发表于 2011-12-01 09:24 |只看该作者
回复 1# wangzhen11aaa


    这个应该是你的N没定义吧?

你看

#include <stdio.h>
#include <stdlib.h>
#define N 10
int foo()
{
return 10;
}
int main(int n,char *v[])
{
  int *a1 = (int *) malloc((N + 1) * sizeof(int));
int *a2 = (int *) malloc((N + 1) * sizeof(int));

int a3=foo();

printf("a1=%p,a2=%p,a3=%p",a1,a2,a3);

return 0;

}

就这个代码

是不会出现错误的

我没有测试

你可以试一试

最多出现一点警告

论坛徽章:
0
6 [报告]
发表于 2011-12-01 10:21 |只看该作者
回复 5# keytounix

5 #define N 6
  6 #define a(i, j)  *a##i(j)
  7 #define t(i, j)  *t##i(j)
  8 #define e(i)     *e##i
  9 #define x(i)     *x##i
10 #define f(i, j)  *f##i(j)
11
12 #define endf    *fresult
13 #define endl    *l
14 #define r(i, j) *r##i(j)
15
16
17 int *a1 = (int *) malloc((N + 1) * sizeof(int));
18 int *a2 = (int *) malloc((N + 1) * sizeof(int));
19
20 int *t1 = (int *) malloc(N * sizeof(int));
21 int *t2 = (int *) malloc(N * sizeof(int));
22
23 int *e1 = (int *) malloc(sizeof(int));
24 int *e2 = (int *) malloc(sizeof(int));

应该不是定义的错误。定义在main里和main外的变量compiler 是区别对待的。

论坛徽章:
0
7 [报告]
发表于 2011-12-01 11:48 |只看该作者
编译器在编译时不能确定值吧。int *a1 = (int *) malloc((N + 1) * sizeof(int)); 这些运行时才能知道结果。

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
8 [报告]
发表于 2011-12-01 16:46 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
9 [报告]
发表于 2011-12-01 16:56 |只看该作者
回复 8# pmerofc

明白了。。谢谢。

论坛徽章:
0
10 [报告]
发表于 2012-12-28 23:10 |只看该作者
应该放函数中去在外边就会出现这种错误。。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP