Вывод из функции

229
19 декабря 2016, 19:42

Есть функция main(), которая вызывает ф-ию addcat(). В ф-ии addcat() должен осуществляться вывод printf("sud"). Но этого не происходит. Почему?

    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    #define enter printf("\n");
    struct account{
        char * login;
        char * pass;
        char * name;
    };
    struct categories{
        account * accs;
        char    * name;
    };
    categories * cats=0; 
    categories * pcat; 
    account    * pacc;
    int addcat(){ 
        return 12;
        printf("%s","ikiki");
    };
    void main(){
    printf("addcat, addacc");  enter;
    char cin[255]; 
    retry: 
    scanf("%s", &cin);
    if (strcmp(cin, "addcat")==0) addcat();
    printf("%d", addcat() );
    goto retry;
    enter; system("pause");
    }
Answer 1

Вроде этот код работает как у вас написано и все выводит.

#include <cstdio>
void addcat()
{
    printf("sud");
}
int main(int argc, char *argv[])
{
    addcat();
    return 0;
}

У вас ошибка в функции addcat. Вы оператором return выходите с функции с возвращением числа 12.
Так как после оператора return функция прекращает свою работу, поэтому до printf() просто не доходит дело.

Сделайте функцию такой...

int addcat()
{ 
    printf("%s","ikiki");
    return 12;   
}
READ ALSO
Ошибка доступа при логине

Ошибка доступа при логине

При первом вызове addacc() все проходит успешноПри втором выдаёт ошибку после ввода логина

222
Прогресс сериализации цепочки классов.

Прогресс сериализации цепочки классов.

Обновил задание на более прикладное: Необходимо выяснить, каков прогресс сериализации объектов классов(ну как полоска загрузки файла с сайта)

201
Произойдёт ли утечка памяти?

Произойдёт ли утечка памяти?

В итоге p1 и p2 будут указывать на один и тот же участок памятиПроизойдёт ли утечка памяти, занятой сначала p1

202