Как в переменую передать функцию
#include "stdio.h"
#include "stdlib.h"
void * input(char InData[1024]){
char *str = malloc(sizeof( char ));
printf(InData);
fgets(str, 1024, stdin);
return str;
}
int main(int argc, char const *argv[])
{
char a[] = input("Hello:");
printf(a);
}
какой тип должен быть у переменой что-бы она принимала функцию ?
Решено
код
#include "stdio.h"
#include "stdlib.h"
void * input(char InData[1024]){
char *str = malloc(sizeof( char ));
printf(InData);
fgets(str, 1024, stdin);
return str;
}
int main(int argc, char const *argv[])
{
char * a = input("Your name?:");
printf("Hello %s",a);
return 0;
}
Ответы (1 шт):
Автор решения: Yaroslav
→ Ссылка
Для коректной компиляции переменая должна иметь тип char * , выделения памяти должно происходить по размеру данных. И не забудте высвободить память после ее использования.
#include "stdio.h"
#include "stdlib.h"
char * input(char * InData){
size_t len = strlen(InData);
char *str = malloc(len + 1);
snprintf(str,len, "%s",InData);
fgets(str, len, stdin);
return str;
}
int main(int argc, char *argv[])
{
char * a = input("Hello:");
printf(a);
free(a);
}