Проблема с переменной и fopen VC ++

Уже я иду ломаясь голова с этой проблемой, так как, если я занимаю Codeblocks с wingw, меня не бросает никакая проблема

char *getArchivoSalida(int num)
{
    char nombre[1024] = "";
    sprintf(nombre, "Imagenx%d.ppm", num);
    ofstream fs(nombre);
    fs.close();
    return nombre;
}

int binario(char *nombre, int n)
{
    FILE *entrada, *salida;
    unsigned char red, green, blue;
    char *archivoSalida = "";
    char formato[3];
    int height, width, depth;
    int widthCont = 1;
    entrada = fopen(nombre, "rb");
    if (entrada == NULL)
    {
        printf("NO SE PUDO ABRIR\n");
        system("pause");
        return -1;
    }
    archivoSalida = getArchivoSalida(n);
    salida = fopen(archivoSalida ,"w+");
    fscanf(entrada, "%s", formato);
    /Continua abajo/
}

Проблема - что в линии salida = fopen(archivoSalida, "w+") ошибка в составителе появляется у ve, что vaiable FILE вывод содержит стоимость null вещь, которая должна получать имя файла. Nose, поскольку он теряется, я это попробовал размести это как постоянная переменная, но совсем не

Предел - что, если я ввожу информацию в компьютер

salida = fopen("Imagenx1.ppm", "w+");

функционируй в совершенство....

что происходит, poblema vc ++?

привет

Редактирование:

introducir la descripción de la imagen aquí

2
задан 12.01.2017, 21:16
0 ответов

В комментариях у тебя есть отпечаток: ты возвращаешь внутреннюю переменную функции getArchivoSalida( ).

Это означает, что, позвонив в эту функцию, ты получаешь недействительную цепь (более правильно, неопределенного контента).

После того, как пробовали fopen( ), Ты не происходишь с ним nombre, что является тем, что ты ждешь, а чем-то, что ты не можешь контролировать. Как следствие, fopen( ) не удайся, и возврати NULL.

Учти, что никакой составитель не является ошибочным. неопределенный контент означает, что оба поведение правильно. Проблема не составитель.

В самом деле, я уверен, что оба составителя показывают тебе объявление, составив, типа intento de retornar una variable interna de la función или сходный, или Ваш эквивалент на английском.

В está спроси, что Проблема, послав указатель в array как параметр в функцию, у тебя есть еще одно описание, подробно опиши твоей проблемы, и каких-то возможных решений.

0
ответ дан 03.12.2019, 17:41
  • 1
    Спасибо, я не понял, что этой детали, так как я использую указатели во внутреннюю переменную uan, эта функция исчезает, закончив функцию. Я это упорядочил размещая Изменчивая имя [1024] как static. ты pasastes –  12.01.2017, 21:50
  • 2
    Если ответы следуют тебе ú tiles, считает принимать (символ check в левую сторону) и(или) голосовать за них позитивно (flechita он достигает, в левую сторону, я участвую в рыцарском турнире на check ). Спасибо. –  12.01.2017, 21:53