Я пытаюсь сделать изображение вектора (упражнение из школы), поэтому я использую заголовки. Есть два файла и одна функция.
Сначала я создал вектор
Vector vector;
GLOBAL_ERROR_CODE = initVector(&vector,3);
if(GLOBAL_ERROR_CODE>0) return printGlobalError();
printf("Vector inited\n");
Позже, пытаясь напечатать его
char * vectorPhotography;
GLOBAL_ERROR_CODE = seeVector( &vector, vectorPhotography );
if(GLOBAL_ERROR_CODE>0) return printGlobalError();
Итак, функция seeVector вот эта
int seeVector(Vector * vector, char * vectorPhotography){
char * vectorStrSize = (char *) malloc(sizeof(char));
int ErrorCode = integerToString(vector->size, vectorStrSize);
if(ErrorCode>0) return ErrorCode;
char * arrayPhotography = (char *) malloc(sizeof(char));
if(ErrorCode>0) return ErrorCode;
ErrorCode = seeArray(vector->array, arrayPhotography, vector->size);
if(ErrorCode>0) return ErrorCode;
if(vectorPhotography) free(vectorPhotography);
vectorPhotography = (char *) malloc(sizeof("{\nSize:,\nArray:,\n}") + sizeof(arrayPhotography) + sizeof(vectorStrSize));
if(vectorArray == NULL) return RESERVE_MEMORY_FAIL;
strcat(vectorPhotography, "{\nSize:");
strcat(vectorPhotography, vectorStrSize);
strcat(vectorPhotography, ",\nArray:");
strcat(vectorPhotography, arrayPhotography);
strcat(vectorPhotography, ",\n}");
return 0;
}
Так вот, в функции seeVector после алгоритма значение vectorPhotography следующее:
(gdb) print vectorPhotography
$3 = 0x5555557576f0 "{\nSize:\003,\nArray:[][][],\n}"
Но когда я возвращаюсь к основной функции, значение равно NULL
(gdb) print vectorPhotography
$4 = 0x0
При запуске я получаю это
Vector inited
Vector:(null)
Итак, мои данные потеряны, я не понимаю, как вернуть вектор, над которым я работал (мне нужен возврат для ошибки коды)