2014-02-05 7 views
3

мне нужно назначить массив из 6 массивов, и это от типа set[maxSetLength]«инициализации» ошибка в VS2010 при инициализации массива

#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 раз

error C2440: 'initializing' : cannot convert from 'set' to 'short' 

6 раз

IntelliSense: a value of type "short *" cannot be used to initialize an entity of type "short" 

12 Ошибки в целом

+0

'test.c: 1: 1: ошибка: stdafx.h: Нет такого файла или directory' , Если вы зададите вопросы, которые никоим образом не зависят от Windows, удалите все Windowsisms из кода перед публикацией. – zwol

+2

@ Запишите, что вы имеете в виду Windowssisms? так учил меня учитель. – GabourX

+0

Тогда ваш учитель некомпетентен. – zwol

ответ

0

Вам нужно использовать указатели (они сложны на C). Попробуйте следующий код (я добавил некоторые отладки, поэтому изменить его обратно на 0-х):

#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

Теперь с вашим путем я получаю 6 ошибок вместо 12, ОШИБКА 6 раз: 'ошибка C2440: 'initializing': не может конвертировать из 'set' в 'short'' – GabourX

+0

Не уверен, кто с нисходящим - но этот C-код является взломать его код, чтобы удалить ошибки компиляции. Протестировано на 3 разных gcc-компиляторах для работы. – robnick

0
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

Он работает, но я должен изменить все параметры проекта для этого, поэтому я все еще хочу, чтобы он работал на CodeBlocks – GabourX

+0

@GabourX. Я думаю, что он должен сделать, чтобы запустить его после соответствующей функции. – BLUEPIXY

Смежные вопросы