Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> передать размер *char в структуру 
V
    Опции темы
eXa
Дата 26.1.2008, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.12.2006

Репутация: нет
Всего: нет



Как правильно передать размер char* test в структуру?

Код

char* test = " test";
short* len = strlen(test);

struct temp
{
char  t1[len];  // data member may not have variably modified type `CHAR[((unsigned int)((int)strlen(((const char*)test))))]'  чтот непонял..O_o
char  t2[sizeof(test)]; // компилятор пропускает, но получается не то что нужно
char  t3[4]; // так правильно, но мне не подходит((
} temp pack;




PM MAIL   Вверх
JackYF
Дата 26.1.2008, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 6
Всего: 162



замени:
Цитата(eXa @  26.1.2008,  15:32 Найти цитируемый пост)
char* test = " test";

Код

char test[] = "test";



--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
eXa
Дата 26.1.2008, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.12.2006

Репутация: нет
Всего: нет



Так тоже пробывал...в таком случии если после чар в структуре идёт word, то пишется сначала word , а потом ток чар smile 
Код

char* test = "test";

struct temp
{
char  t1[];
word  t2; 

} temp pack;

strcpy(pack.t1, test);
pack.t2 = 1;


01 00 74 65 73 75

надо))

74 65 73 75 01 00



Это сообщение отредактировал(а) eXa - 26.1.2008, 19:34
PM MAIL   Вверх
JackYF
Дата 26.1.2008, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 6
Всего: 162



Цитата(eXa @  26.1.2008,  18:34 Найти цитируемый пост)
char* test = "test";
struct temp
{
char  t1[];
word  t2; 
} temp pack;
strcpy(pack.t1, test);
pack.t2 = 1;

не понял, ты не сделал в этом коде изменения того, что я сказал. Приводи, опять-таки конкретный полный нерабочий код с учётом изменений.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
eXa
Дата 26.1.2008, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.12.2006

Репутация: нет
Всего: нет



поправил... так правильно 
Код

char test[] = "test";
srtuct 
{
CHAR t[sizeof(test)-1];
}

А почему нельзя использывать strlen?

PM MAIL   Вверх
JackYF
Дата 26.1.2008, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 6
Всего: 162



Цитата(eXa @  26.1.2008,  19:44 Найти цитируемый пост)
А почему нельзя использывать strlen?

потому что strlen - функция времени выполнения, а длину нединамических массивов можно указывать только константами.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
archimed7592
Дата 26.1.2008, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 6
Всего: 93



Цитата(eXa @  26.1.2008,  20:44 Найти цитируемый пост)
А почему нельзя использывать strlen?

Потому что strlen - ф-ция времени выполнения, а компилятору необходимо вычислить размер структуры на этапе компиляции.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
eXa
Дата 26.1.2008, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.12.2006

Репутация: нет
Всего: нет



ясно, спасиб smile 
PM MAIL   Вверх
JackYF
Дата 26.1.2008, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 6
Всего: 162



 smile 
Цитата(JackYF @  26.1.2008,  20:09 Найти цитируемый пост)
потому что strlen - функция времени выполнения

Цитата(archimed7592 @  26.1.2008,  20:21 Найти цитируемый пост)
Потому что strlen - ф-ция времени выполнения

 smile ...  smile 



--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
archimed7592
Дата 26.1.2008, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 6
Всего: 93



Сорри, я видимо тему открыл и как всегда ответил только полчаса спустя smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
JackYF
Дата 26.1.2008, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 6
Всего: 162



 smile 
Цитата(archimed7592 @  26.1.2008,  20:49 Найти цитируемый пост)
Сорри, я видимо тему открыл и как всегда ответил только полчаса спустя 

да дело не в этом smile у нас фразы сошлись буквально дословно, не заметил? smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
archimed7592
Дата 27.1.2008, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 6
Всего: 93



Заметил smile. Наверное мозги одинакого работают smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1597 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.