Передать указатель на структуру в параметре функции - 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;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д