概述
在做leetcode题目217时,编译报错,error: variable-sized object may not be initialized。
定义数组时:数组名[常量表达式],常量表达式中不能有变量,如果n是用户输入的或者是函数参数传递过来的或n是定义的局部变量,都不能 int a[n] = {0}; 这么初始化数组。只有n是常量,比如10才能这么初始化。
我的不完全理解是:编译报错,编译时不知道数组的大小,但编译过程就给数组分配存储空间,所以报错。
bool containsDuplicate(int* nums, int numsSize) {
if ((nums == NULL && numsSize == 0) || numsSize == 1)
return false;
int i, index;
int arr[numsSize] = {0};
for (i = 0; i < numsSize; i ++) {
index = nums[i];
if (arr[index] == 1)
return true;
arr[index] = 1;
}
return false;
}
这道题,还想错了。
最后
以上就是刻苦钢铁侠为你收集整理的C 初始化数组的全部内容,希望文章能够帮你解决C 初始化数组所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复