powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Процедуры в си
5 сообщений из 5, страница 1 из 1
Процедуры в си
    #39069029
r18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
r18
Гость
Добрый день.
В языке си в процедуру передаю переменную типа char в процедуре эта переменная почему-то теряет часть много данных, т.е. первые 8 символом, а остальные нет. Как сделать правильно, чтобы в процедуре он принимал все данные?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  int j;
  for (j = 0; j < sizeof(buf_lintel); j++)
   {
   printf("%s%u%s%u\n","Nomer bite - ",j,", Znachen - ", buf_lintel[j]);
   }
   if (flagoshib==1)
   obrabtelton(buf_lintel, sock);



В процедуре:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
void obrabtelton(char *strty, int sock)
{
                  	 for (j = 0; j < sizeof(strty); j++)
                  	 {
                  	 printf("%s%u%s%u\n","Nomer bite - ",j,", Znachen - ",strty[j]);
                  	 }
......................



Данные до вызова в массиве:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Nomer bite - 0, Znachen - 23
Nomer bite - 1, Znachen - 27
Nomer bite - 2, Znachen - 66
Nomer bite - 3, Znachen - 3
Nomer bite - 4, Znachen - 35
Nomer bite - 5, Znachen - 10
Nomer bite - 6, Znachen - 13
Nomer bite - 7, Znachen - 4294967220
Nomer bite - 8, Znachen - 16
Nomer bite - 9, Znachen - 0
Nomer bite - 10, Znachen - 4294967289
Nomer bite - 11, Znachen - 1
Nomer bite - 12, Znachen - 104
Nomer bite - 13, Znachen - 43
................................................



После в массиве в процедуре:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Nomer bite - 0, Znachen - 23
Nomer bite - 1, Znachen - 27
Nomer bite - 2, Znachen - 66
Nomer bite - 3, Znachen - 3
Nomer bite - 4, Znachen - 35
Nomer bite - 5, Znachen - 10
Nomer bite - 6, Znachen - 13
Nomer bite - 7, Znachen - 4294967220
...
Рейтинг: 0 / 0
Процедуры в си
    #39069042
RWolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sizeof(strty) = 4 на 32-бит архитектуре и 8 на 64-бит.
...
Рейтинг: 0 / 0
Процедуры в си
    #39069115
r18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
r18
Гость
Да даже так делаю
в процедуре

Код: plaintext
1.
2.
char str3[480];
 strcpy (str3, strty) ;



Данные не совпадают.

Данные до:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Nomer bite - 0, Znachen - 23
Nomer bite - 1, Znachen - 27
Nomer bite - 2, Znachen - 66
Nomer bite - 3, Znachen - 3
Nomer bite - 4, Znachen - 35
Nomer bite - 5, Znachen - 10
Nomer bite - 6, Znachen - 13
Nomer bite - 7, Znachen - 4294967220
Nomer bite - 8, Znachen - 16
Nomer bite - 9, Znachen - 0
Nomer bite - 10, Znachen - 4294967289
Nomer bite - 11, Znachen - 1
Nomer bite - 12, Znachen - 104
Nomer bite - 13, Znachen - 43




Данные после:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Nomer bite - 0, Znachen - 23
Nomer bite - 1, Znachen - 27
Nomer bite - 2, Znachen - 66
Nomer bite - 3, Znachen - 3
Nomer bite - 4, Znachen - 35
Nomer bite - 5, Znachen - 10
Nomer bite - 6, Znachen - 13
Nomer bite - 7, Znachen - 4294967220
Nomer bite - 8, Znachen - 16
Nomer bite - 9, Znachen - 0
Nomer bite - 10, Znachen - 0
Nomer bite - 11, Znachen - 0
Nomer bite - 12, Znachen - 1
Nomer bite - 13, Znachen - 0
...
Рейтинг: 0 / 0
Процедуры в си
    #39069159
Зимаргл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
strcpy копирует до 1го нуля. используй memcpy

почитай про работу со строками asciiz
...
Рейтинг: 0 / 0
Процедуры в си
    #39069201
r18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
r18
Гость
Спасибо. Memcpy вроде помогло здесь.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Процедуры в си
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]