C 警告从整数生成指针而不使用强制转换

C 警告从整数生成指针而不使用强制转换,c,C,swap-get函数的增广传输问题,使用指针,但调用swap函数时,无法将参数(str)传递到函数中。警告是: 传递'strcmp'的参数2将从整数生成指针,而不使用强制转换[默认情况下启用] 有人能帮忙吗 #include <stdio.h> #include <stdlib.h> #include <string.h> void swap(char *str); void copy (const int size, char array[3][5]);

swap-get函数的增广传输问题,使用指针,但调用swap函数时,无法将参数(str)传递到函数中。警告是: 传递'strcmp'的参数2将从整数生成指针,而不使用强制转换[默认情况下启用]

有人能帮忙吗

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void swap(char *str);
void copy (const int size,  char array[3][5]);
int main(void) {
     char a[5];
     char b[5];
     char c[5];
     char dst[3][5];

     scanf("%s", a);
     swap(a);
     strcpy(dst[0], a);

     scanf("%s", b);
     swap(b);
     strcpy(dst[1], b);

     scanf("%s", c);
     swap(c);
     strcpy(dst[2], c);


    copy(3, dst);


    return 0;
}

void copy (const int size,  char array[3][5]){
    int i;
    char temp[5];
    for (i=0;i<3;i++){
        if(strcmp(array[i],array[i+1])<0)
        {
            strcpy(temp, array[i]);
            strcpy(array[i], array[i+1]);
            strcpy(array[i+1], temp);
        }
    }
    for (i=0; i<3;i++){

        printf("%s\n", array[i]);
    }
    return;
}
void swap(char *str){
    char temp2;
    int j=0;
  for (;j<5;j++){
      if(strcmp(str[j],str[j+1])<0){
    strcpy(temp2, str[j]);
    strcpy(&str[j], str[j+1]);
    strcpy(str[j+1], temp2);
      }
  }
    return;
}
#包括
#包括
#包括
无效掉期(char*str);
无效副本(常量整数大小,字符数组[3][5]);
内部主(空){
chara[5];
charb[5];
charc[5];
char-dst[3][5];
scanf(“%s”,a);
掉期(a);
strcpy(dst[0],a);
scanf(“%s”,b);
掉期(b);
strcpy(dst[1],b);
scanf(“%s”,c);
掉期(c);
strcpy(dst[2],c);
副本(3,dst);
返回0;
}
无效副本(常量整数大小,字符数组[3][5]){
int i;
炭温[5];

for(i=0;i问题来源:swap函数for循环中的Ist语句

  void swap(char *str)
    {
    //code
    //for_loop
    if(strcmp(str[j],str[j+1])<0)
    //code
    }
void交换(char*str)
{
//代码
//for_循环

if(strcmp(str[j],str[j+1])当你给它两个
char
s或者
strcpy
时,你期望strcmp做什么呢?可能的重复要小心for循环。如果i==2=>array[i+1]是array[3],超出范围!