Это первый раз, когда я спрашиваю здесь. Я просто хотел знать, правильны ли «возврат» этого блока кода, особенно первый.Возврат указателя в C
tVideo* getVideo(int id, tTblVideo* table){
tVideo* videoFound = NULL;
int i;
for(i = 0; i < table->length; i++){
if(table->data[i]->mediaID == id) return *table->data[i];
}
return videoFound;
}
EDIT: Добавление определения tTblVideo:
typedef struct {
/* Number of stored files */
int length;
/* Array of video files */
tVideo *data;
} tTblVideo;
никакого способа узнать, не видя 'tTblVideo'. Скомпилирует ли он? – jxh
Второе возвращение всегда дает 'NULL', потому что ничего никогда не устанавливает videoFound. Тем не менее, ранний выход - это путь, так что это не настоящая проблема; это просто лишняя переменная. – ams
Хорошей практикой было бы заменить 'return * table-> data [i]' на 'videoFound = table-> data [i]'. –