可变数组怎么初始化(可变大小的对象不能被初始化)?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可变数组怎么初始化(可变大小的对象不能被初始化)?相关的知识,希望对你有一定的参考价值。
#include <stdio.h>
int main(void)
char a=256;
int d = a ;
int m=1, num[m];
int sum[m] = 1;
printf("%d,%d",d, d+1);
return 0;
编译时提示:
5.c: 在函数‘main’中:
5.c:5:2: 警告: 隐式常量转换溢出 [-Woverflow]
5.c:8:2: 错误: 可变大小的对象不能被初始化
5.c:8:2: 警告: 数组初始值设定项中有多余的元素 [默认启用]
5.c:8:2: 警告: (在‘sum’的初始化附近) [默认启用]
make: *** [5] 错误 1
下面给个例子 希望你运行下:
#include <iostream>
#include <vector>
using namespace std;
int main()
vector<int> iVec;
cout << "容器 大小为: " << iVec.size() << endl;
cout << "容器 容量为: " << iVec.capacity() << endl; //1个元素, 容器容量为1
iVec.push_back(1);
cout << "容器 大小为: " << iVec.size() << endl;
cout << "容器 容量为: " << iVec.capacity() << endl; //2个元素, 容器容量为2
iVec.push_back(2);
cout << "容器 大小为: " << iVec.size() << endl;
cout << "容器 容量为: " << iVec.capacity() << endl; //3个元素, 容器容量为4
iVec.push_back(3);
cout << "容器 大小为: " << iVec.size() << endl;
cout << "容器 容量为: " << iVec.capacity() << endl; //4个元素, 容器容量为4
iVec.push_back(4);
iVec.push_back(5);
cout << "容器 大小为: " << iVec.size() << endl;
cout << "容器 容量为: " << iVec.capacity() << endl; //5个元素, 容器容量为8
iVec.push_back(6);
cout << "容器 大小为: " << iVec.size() << endl;
cout << "容器 容量为: " << iVec.capacity() << endl; //6个元素, 容器容量为8
iVec.push_back(7);
cout << "容器 大小为: " << iVec.size() << endl;
cout << "容器 容量为: " << iVec.capacity() << endl; //7个元素, 容器容量为8
iVec.push_back(8);
cout << "容器 大小为: " << iVec.size() << endl;
cout << "容器 容量为: " << iVec.capacity() << endl; //8个元素, 容器容量为8
iVec.push_back(9);
cout << "容器 大小为: " << iVec.size() << endl;
cout << "容器 容量为: " << iVec.capacity() << endl; //9个元素, 容器容量为16
/* vs2005/8 容量增长不是翻倍的,如
9个元素 容量9
10个元素 容量13 */
/* 测试effective stl中的特殊的交换 swap() */
cout << "当前vector 的大小为: " << iVec.size() << endl;
cout << "当前vector 的容量为: " << iVec.capacity() << endl;
vector<int>(iVec).swap(iVec);
cout << "临时的vector<int>对象 的大小为: " << (vector<int>(iVec)).size() << endl;
cout << "临时的vector<int>对象 的容量为: " << (vector<int>(iVec)).capacity() << endl;
cout << "交换后,当前vector 的大小为: " << iVec.size() << endl;
cout << "交换后,当前vector 的容量为: " << iVec.capacity() << endl;
return 0;
参考技术A #include <stdio.h>
#define M 50
#define N 50
int a[M][N];
void again(int a[][50]);
int main()
int a_rows,a_cols;
int i,j;
again(a);
printf("please input the i_rows of the array_a:");
scanf("%d",&a_rows);
printf("please input the i_cols of the array_a:");
scanf("%d",&a_cols);
printf("input the array_a:\n");
for(i=0;i<a_rows;i++)
for(j=0;j<a_cols;j++)
scanf("%d",&a[i][j]);
for(i=0;i<a_rows;i++)
for(j=0;j<a_cols;j++)
printf("%d",a[i][j])
return 0;
void again(int a[]【50】)
int i,j;
for(i=0;i<50;i++)
for(j=0;j<50;j++)
a[i][j]=0;
return;
这是二维的 子函数部分就是初始化 希望对你有用~ 参考技术B 可变数组 不初始化; 就跟要你去找一个人 但是没跟你说有什么特征一样 你怎么找
以上是关于可变数组怎么初始化(可变大小的对象不能被初始化)?的主要内容,如果未能解决你的问题,请参考以下文章