Как видите, у меня есть этот код, он принимает команду (char array) и делит ее на два разных массива, если есть «|» между ними. Что я хочу, это не печатать его с помощью функции, а возвращать эти два новых массива на главную, а затем печатать их?Как вернуть Char Array?
Как это сделать?
#include <fcntl.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <stdlib.h>
#include <unistd.h>
int main()
{
int a;
int status,n,i;
char command[4000];
write(STDOUT_FILENO,"Shell>",6);
n=read(STDIN_FILENO,command,4000);
void getArguments(char **,char*);
char *getStdOutFileName(char *);
if(n>0)
{
for(i=0;i<n;i++)
{
bugrafonk(command,&i);
printf("%s",First);
printf("%s",Second);
}
}
}
void bugrafonk(char* c,int*length)
{
int i;
int a;
char First[4000];
char Second[4000];
for(i=0;i<length;i++)
{
if(c[i]=='|')
{
i=a;
for(i=0;i<a;i++)
{
char First[i];
}
printf("---");
for(i=a;a<length;i++)
{
char Second[i];
}
}
}
return(First,Second); //is this true ?
}
В настоящее время существует некоторая декларация nonecssery, поэтому просто избегайте их. Я буду использовать их позже.
Ничего себе. Правильно отформатируйте свой код - это отвратительно. –
Постарайтесь построить его, прочитать ошибки, я имею в виду, на самом деле * читать * их (кажется, это редкость в наши дни), и исправлять ошибки один за другим. Тогда поймите, что вы не можете вернуть указатель на локальный массив, так как массив, как и любая другая локальная переменная, выйдет из области действия после возвращения функции. –
'char * bugrafonk' вместо' void bugrafonk' и 'return First' или' return Second' вместо 'return (char First, char Second)'. –