2017-01-14 3 views
0

Я использую ЬурейеЕ определить «набор» в качестве bool массива:ошибка: индексируются значение не является ни массивом, ни указателя, ни вектор на булевой массив

typedef struct set{ bool Arr[128]; }set;

проблема является то, что каждый раз, когда я пытаюсь присваивать значение/f, например

temp[itemp]=true; 

(температура является «набор», как определено и itemp это целое) я получаю ошибку:

индексируются значение не является ни массивом, ни указателя, ни вектор Я понятия не имею, как это исправить , пожалуйста помоги. PS: Я использую C на ubuntu

+0

Попробуйте создать [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve) и покажите нам. А также скопируйте фактические ошибки в тело вопроса, неотредактированные и полностью. –

+0

"* или vector *" нет векторов в C. Поэтому это сообщение об ошибке не было выпущено компилятором C. Какой компилятор вы используете? – alk

+1

Я предполагаю единственную причину, по которой вы используете здесь 'struct', а не просто' typedef bool set [128]; 'потому, что без этого вы не можете передать значение' set' в списке параметров функции, вы также не можете назначить два объекта 'set'. Учитывая эти правдоподобные причины, я досаду, как вы, похоже, пропустили тот факт, что член «Arr'has играет какую-то роль в вашем заявлении о назначении. – WhozCraig

ответ

0

, что вы сделали это псевдоним называется set на структуру, содержащую массив BOOLS с размером 128. Это означает, что доступ к элементу Arr, вам нужно использовать оператор доступа члена . как так:

temp.Arr[itemp] = true; 

Если вы не хотите, чтобы сделать это, вы можете массив определение типа во как так:

typedef bool set[128]; 

таким образом, вы можете получить доступ к нему Direc tly:

set s = { false }; 
s[1] = true; 
1

temp - это набор, а не массив. Таким образом, он не может быть индексирован. Вы должны получить доступ к массиву внутри набора.

temp.Arr[itemp] = true; 
+0

Большое вам спасибо! проблема была в том, что просто решить XD –

+0

Счастлив помочь :) – letmutx

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