首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >初始化数组时,VS2010中出现“initializing”错误

初始化数组时,VS2010中出现“initializing”错误
EN

Stack Overflow用户
提问于 2014-02-05 11:19:09
回答 2查看 142关注 0票数 3

我需要分配一个由6个数组组成的数组,它来自类型set[maxSetLength]

代码语言:javascript
复制
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#define maxSetLength 129

typedef short int set[maxSetLength]; 

int _tmain(int argc, _TCHAR* argv[]){
int i;
set a={0},b={0},c={0},d={0},e={0},f={0}; // Assigning 6 Sets (Arrays) initialized by zeros
set sets[6]={a,b,c,d,e,f}; //Inserting All Sets into one Array (Array Of Arrays)
}

在CodeBlocks中它的编译没有错误,在VS2010中它没有错误,以下是错误:

6次

代码语言:javascript
复制
error C2440: 'initializing' : cannot convert from 'set' to 'short'

6次

代码语言:javascript
复制
IntelliSense: a value of type "short *" cannot be used to initialize an entity of type "short"

总共12个错误

EN

回答 2

Stack Overflow用户

发布于 2014-02-05 11:35:16

你需要使用指针(它们在C中很棘手)。尝试下面的代码(我已经添加了一些调试,所以将它改回0):

代码语言:javascript
复制
#include <stdio.h>
#include <string.h>

#define maxSetLength 129

typedef short int set[maxSetLength]; 

main()
{

int i;
set a={55},b={0},c={0},d={0},e={0},f={66}; // Assigning 6 Sets (Arrays) initialized by zeros
set sets[6]={*a,*b,*c,*d,*e,*f};

printf("%d\n", sets[0][0]);   // should be 55
printf("%d\n", sets[0][5]);   // should be 66

}
票数 0
EN

Stack Overflow用户

发布于 2014-02-05 17:14:08

代码语言:javascript
复制
set a={0},b={0},c={0},d={0},e={0},f={0}; // Assigning 6 Sets (Arrays) initialized by zeros
set *sets[6]={&a, &b, &c, &d, &e, &f}; //Inserting All Sets into one Array (Array Of Arrays)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21567978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档