Передать указатель на структуру в параметре функции - 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;
}