"initializer element is not constant" 是一个在C语言编程中常见的编译错误。这个错误表明在初始化全局变量或静态变量时,使用了非常量的表达式。在C语言中,全局变量和静态变量的初始化必须是在编译时就能确定其值的常量表达式。 列举可能导致这个错误的情况 使用变量初始化全局或静态变量:尝试使用另一个变量的值来初始...
上面的代码会报initializer element is not constant 错误,错误原因是: C语言初始化一个全局变量或static变量时,只能用常量赋值,不能用变量赋值!(错误就在void* v_p = p_a) 解决办法如下:定义成局部变量就OK了。 #include <stdio.h>inta =1314;int* p_a = &a;intmain(void) {void* v_p =p_a;retu...
出现“initializer element is not constant”错误 原因: 全局变量c的值不能在编译时确定,要在执行是确定(编译原理。。)解决办法:[cpp] view plaincopy include <stdio.h> int a = 1;int b = 2;int c; //只声明 int main() { c = a + b; //在main函数里赋值 printf("c is %d\...
原因: 全局变量c的值不能在编译时确定,要在执行是确定(编译原理。。)解决办法:[cpp] view plaincopy include <stdio.h> int a = 1;int b = 2;int c; //只声明 int main() { c = a + b; //在main函数里赋值 printf("c is %d\n", c);return 0;} ...
initializer element is not constant 初始化元素不是常数
当在全局变量定义一个指针变量,并动态分配内存后,发现竟然编译不过去,并提示 ""initializer element is not constant"": 1 2 3 4 5 char*buf =malloc(1024); intmain() { return0; }; 后来知道了,不能将全局变量初始化为一个无法在编译时期确定的值。再想想暑假学习的CSAPP中的链接那部分就知道为什么了。
malloc函数时:initializer element is not constant 中文解释是,成员的初始化不是常量. c语言里的全局变量是在编译器的链接阶段完成的 char *names = (char *)malloc(sizeof(char)*10); 使得names需要调用函数malloc函数,这当然不行了,因为编译器在链接时并不能执行函数啊 ...
在学习C/C++的过程中,我们会遇到很多错误,今天我们来探究一下“initializer element is not constant”错误。 先看一下下面的代码: #include <stdio.h> int a = 1; int b = 2; int c = a + b; int main(void) { printf("hello %d\n",c); return 0; } 可就是这样一个简单的代码,使用gcc编译...
为什么出现“initializer element is not constant”错误 5 下面第18行无法编译提示initializerelementisnotconstant是为什么,求解答#include<stdio.h>#include<windows.h>//基本型态定义。支援型态定义函数。使用者界面函数图形装置界面函数。... 下面第18行无法编译 提示initializer element is not constant是为什么,求...
以下两段代码,如果命名为 *.c 文件,在GCC下编译,都会报错,错误信息是“initializer element is not constant ”。 但是如果把 *.c 文件改名为 *.cc文件,用g++编译,就不会报错。 谁能详细解释一下这是为什么。 // code 1 inti=10; intj=i+4; ...