Я играю с C. Просто задайте несколько вопросов, по которым лучше всего практиковать, и если я что-то делаю неправильно.Лучший способ передать указатели между функциями
Я сделал программу, которая, кажется, работает:
void main()
{
char *text;
text = malloc(10 * sizeof(char));
dosomethingwithtext(text);
printf("%s\n", text);
}
Однако я также видел версию, как это: (я знаю, что это не будет ничего значимого печати, потому что я не добавил символов , но представьте себе, что у меня было!)
void main()
{
char *text;
text = dosomething();
printf("%s\n", text);
}
char * dosomething()
{
char *text;
text = malloc(10 * sizeof(char));
return text;
}
Или, если любой из них не оптимален, что является лучшим способом. В основном я задаю самый общий/лучший способ сделать это.
Тип мнения основан, но я уверен, что вы получите ответы, которые делают случай для обоих способов. ИМО, оба пути имеют свои преимущества в зависимости от того, где их называют. Но в обоих случаях вы должны помнить оператор 'free()'. – ryyker
'void main()' является недопустимой сигнатурой для 'main' и устаревшим синтаксисом для любого декларатора функций. – Olaf
@Olaf 'устаревший синтаксис для любой функции declarator', не могли бы вы расширить? – xvan