Передача параметров из одного модуля в другой - C (СИ)
Формулировка задачи:
Привет, ребят. Есть два модуля operation.c и main.c. Из operations.c в main.c нужно передать три параметра. Вот то, что я наклепал.
это main.c
а вот сама функция из operations.c
case 8: undo(&nword,&prev_word,slovo); break;
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); }
Забыл добавить, что параметры достаются из функции 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д