Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2011, 17:56   #1
atmin
Новичок
Джуниор
 
Регистрация: 17.03.2011
Сообщений: 2
По умолчанию Присваивание значения массиву

Всем привет! Сразу хочу сказать что в СИ я чайник, не нашел в какой теме находятся мне подобные.
Изучаю Си, а точнее пишу программу в CodeVisionAVR, и пришел в тупик. Нужно в массив присвоить некоторое значение, не могу понять как правильно писать. Помогите пожалуйста.

void main(void)
char q[10];
{
q[]="asdfghjkl";
}
atmin вне форума Ответить с цитированием
Старый 17.03.2011, 20:03   #2
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

во 1 так:
int main(void)
{
char q[10];

return 0;
}

разные способы:
Код:
1) 
int arr[n];
for (int i=0; i<n; i++) arr[i]=i; // инициализация в цикле "от 1 до n"
2)
int arr[n] = {1,2,3,4,5,6,7}; // инициализация списком 

только для массивов символов:
3)strcpy("qwerty",q); // скопировать строку qwerty по адресу q
4)char q[10] = "qwerty"; // инициализация строкой (только при объявлении)
q[] значит, что размером массива станет размер который он принял в списке инициализации (int q[] = {1,2,3,4}; - размер 4)
onewho вне форума Ответить с цитированием
Старый 18.03.2011, 00:47   #3
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Цитата:
return 0;
Это необязательно, но насчёт int main() ты ессно прав.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 18.03.2011, 03:23   #4
atmin
Новичок
Джуниор
 
Регистрация: 17.03.2011
Сообщений: 2
По умолчанию

Не получается Parametr #1 of type 'flash unsignet char *' is incompatible with type 'unsignet char *' specified in the function 'strcpy' declaration' ругается при компиляции, но хотя если проверить на синтаксис - ошибок нет.
onewho, объявил char q[] локально в функции main. Я же объявлаю q[] глобально сразу после #include. Посмотрите полностью код, пишу программу для радиационного дозиметра. На данный момент пытаюсь выводить символьную информацию на семи сегментный дисплей.
#include <mega16.h>
#include <stdlib.h>
#include <string.h>
// Declare your global variables here
char display[6];
char simabc[]={"abcdefghijklnopqrstuvy"};
char simb[]={0b00010010,0b10110000,0b10011001, 0b01110000,0b10010001,0b10010011,0b 10011000,0b00110010,0b01111110,0b01 111000,0b10010010,0b10111001,0b0001 1010,0b11110010,0b11110000,0b000100 11,0b00010110,0b11110011,0b10010100 ,0b10110001,0b00111000,0b11111000,0 b00110100};
//int number[]={0b11000000,0b11110110,0b01001010, 0b01100010,0b01110100,0b01100001,0b 01000001,0b11110010,0b01000000,0b01 110000};
char outpr[6]; // массив из которого потом выдаётся значение на дисплей
char q;
int s; // счетчик
int s1; //...
void print(){ // вывод информации на дисплей
if(TCNT0>0 && TCNT0<42 ) {
PORTD=0b11111110;
PORTC=display[0];
}
if(TCNT0>42 && TCNT0<85 ) {
PORTD=0b11111101;
PORTC=display[1];
}
if(TCNT0>85 && TCNT0<127 ) {
PORTD=0b11111011;
PORTC=display[2];
}
if(TCNT0>127 && TCNT0<170 ){
PORTD=0b11011111;
PORTC=display[3];
}
if(TCNT0>170 && TCNT0<212 ){
PORTD=0b11101111;
PORTC=display[4];
}
if(TCNT0>212 && TCNT0<255 ){
PORTD=0b11110111;
PORTC=display[5];
}
}

void reprint(){
//for (s=0;s<6;s++){display[s]=simb[s+10];}
for(s=0; s<6; s++){
for(s1=0; s1<21; s1++){
if(outpr[s]==simabc[s1]){display[s]=simb[s];}
}
}
}


void main(void)
{
// Declare your local variables here



// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 13,982 kHz
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x05;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

while (1)
{
strcpy("qwerty",outpr);
reprint();

while(1){
print();
};
};
}

Последний раз редактировалось atmin; 18.03.2011 в 04:02.
atmin вне форума Ответить с цитированием
Старый 21.03.2011, 01:27   #5
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

блин парень подвёл я тебя

strcpy(outpr,"qwerty");
надо
onewho вне форума Ответить с цитированием
Старый 21.03.2011, 02:12   #6
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

блин, сказали же, void main(void) нельзя, пиши int main(). но это не по теме.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Присваивание значения через промежуток времени Epc Помощь студентам 43 06.11.2010 15:27
Неправильное присваивание значения ячейке 4istii_listo4ek Microsoft Office Excel 18 15.10.2010 20:34
присваивание полю значения из запроса Desha Microsoft Office Access 0 12.06.2010 18:34
Recordset - присваивание значения поля Desha Microsoft Office Access 6 11.06.2010 20:38
Присваивание тексту Memo значения из TStringList Alex Cones Общие вопросы Delphi 10 14.08.2009 21:07