Передача параметров из одного модуля в другой - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Привет, ребят. Есть два модуля operation.c и main.c. Из operations.c в main.c нужно передать три параметра. Вот то, что я наклепал.
        case 8:
                undo(&nword,&prev_word,slovo);
                break;
это main.c
void undo(int nword,int prev_word,char *slovo) {
    int i,j;
    rs[line]=(unsigned char *)realloc(rs[line],strlen(rs[line])+n);
        if(!rs)
            {
                printf("Ошибка перераспределения памяти");
            }
            strcat(rs[line],slovo);
    for (i=prev_word;i<nword;i++) 
        {
            rs[line][i]=slovo[i];
            for (j=i;j<strlen(rs[line]);j++)
            {
                rs[line][j]=rs[line][j+1];
            }
        }
    wr_text(xt,yt,xk,yk);
}
а вот сама функция из operations.c
Забыл добавить, что параметры достаются из функции del
void del(int *prev_word,int *nword,char *slovo,shift)
{
    char s2[100],slovo[400];
    int i1,i,j,n;
    int space;
    i=0;strcpy(s2,"");
        if (shift) {
                while(i<strlen(rs[line]))
    {
        while(i<strlen(rs[line]) && rs[line][i]==' ') 
            i++;
        if(i<strlen(rs[line]))//
        {
            *prev_word = i;
            i1=i;//начало текущего слова
            while((i<strlen(rs[line])) && rs[line][i]!=' ')i++;
            *nword=i-i1;//длина текущего слова
            strncpy(slovo,&rs[line][i1],*nword);//копируем текущее слово в
            slovo[*nword]=' ';            //поле slovo, добавляем пробел
            slovo[*nword+1]='\0';//и символ '\0'.
            strcat(s2,slovo);//Переписываем текущее слово в результирующую строку.
            break;
        }
 
                }
        leng=strlen(rs[line]);
        if (leng==0)
            return;
        i=pos;
        if (pos==' ') 
            pos++;
        while (rs[line][i]!=' ') 
            i++;
        space = i+1;  
        for(i=pos;i<space;i++)
        {
            for (j=pos;j<strlen(rs[line]);j++)
            {
                rs[line][j]=rs[line][j+1];
            }
        }
        rs[line]=(unsigned char *)realloc(rs[line],leng);
        wr_text(xt,yt,xk,yk);
    }
        else {
    if (pos<strlen(rs[line])-1) 
    {
        /*Если позиция в строке не последняя, 
        удаляем символы до конца строки (до последнего пробела)*/
        leng=strlen(rs[line]);
        for(i=pos;i<strlen(rs[line]);i++)
        {
            rs[line][i]=rs[line][i+1];
        }                           
        rs[line]=(unsigned char *)realloc(rs[line],leng);
        wr_text(xt,yt,xk,yk);
    }
    else
    {
        if(line<n-1)  
        {
            /*Если не последняя строка, сдвигаем все на одну вверх и соединяем текущую строку line со следующей*/
            leng=strlen(rs[line]);          /*Длина текущей строки*/
            /*На место пробела в последней позиции строки заносим 0, необходимо для копирования*/
            rs[line][pos]=rs[line][pos+1];  
            rs[line]=(unsigned char *)realloc(rs[line],leng+strlen(rs[line+1]));
            if(!rs)
            {
                printf("Ошибка перераспределения памяти");
            }
            strcat(rs[line],rs[line+1]);
            free(rs[line+1]);
            if(line<n-2)    /*Сдвигаем строки*/
            {
                for(i=line+1;i<n-1;i++)
                {
                    rs[i]=rs[i+1];
                }                                   
            }                           
            n--;            /*Уменьшаем количество строк*/
            wr_text(xt,yt,xk,yk);                               
        }
    }
    if(highlighting)
    {
        unmask(&xmask1,&ymask1,&xmask2,&ymask2,&overlap);
    }
        }
}

Решение задачи: «Передача параметров из одного модуля в другой»

textual
Листинг программы
undo(&nword,&prev_word,slovo);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.429 из 5
Похожие ответы