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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
typedef int BYTE;
 
struct Test {
    BYTE Size;
    BYTE Mass[ 255 ]; // тут точно должен быть массив указателей?
};
 
struct Test* Func( struct Test* a );
 
int main( void ) {
 
    struct Test exam;
    exam.Size = 10;
 
    struct Test* examToo = Func( &exam );
    printf( "%d", examToo->Size );
 
    free( examToo ); // а тут мы очищаем выделенную динамически память
 
    return EXIT_SUCCESS;
}
 
struct Test* Func( struct Test* a ) {
    // если возвращать указатель на структуру, то память нужно выделить динамически
    // не забывая потом очищать
    struct Test* _Test = ( struct Test* ) malloc( sizeof(struct Test) );
    _Test->Size = a->Size;
    return _Test;
}

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


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

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

5   голосов , оценка 3.8 из 5
Похожие ответы