Передать указатель на структуру в параметре функции - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Есть структура
Листинг программы
  1. struct Test{
  2. BYTE Size;
  3. BYTE* Mass[255];
  4. };
На чистом Си нужно передавать указатель на нее в параметре функции, и возвращать ее результате. Объявляю так:
Листинг программы
  1. struct Test _Test;
Пробовал так:
Листинг программы
  1. Test* FUNC (Test* a) {
  2. struct Test _Test;
  3. return &Test;
  4. }
Но это не работает, подскажите плиз как правильно.

Решение задачи: «Передать указатель на структуру в параметре функции»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef int BYTE;
  5.  
  6. struct Test {
  7.     BYTE Size;
  8.     BYTE Mass[ 255 ]; // тут точно должен быть массив указателей?
  9. };
  10.  
  11. struct Test* Func( struct Test* a );
  12.  
  13. int main( void ) {
  14.  
  15.     struct Test exam;
  16.     exam.Size = 10;
  17.  
  18.     struct Test* examToo = Func( &exam );
  19.     printf( "%d", examToo->Size );
  20.  
  21.     free( examToo ); // а тут мы очищаем выделенную динамически память
  22.  
  23.     return EXIT_SUCCESS;
  24. }
  25.  
  26. struct Test* Func( struct Test* a ) {
  27.     // если возвращать указатель на структуру, то память нужно выделить динамически
  28.     // не забывая потом очищать
  29.     struct Test* _Test = ( struct Test* ) malloc( sizeof(struct Test) );
  30.     _Test->Size = a->Size;
  31.     return _Test;
  32. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы