繁体   English   中英

在函数声明中收到错误

[英]receiving an error in the function declaration

我在以下程序中收到错误和警告

void reverse(char ss[],char s2[])
                  ^
1 warning generated

错误是

警告:数组函数参数上的sizeof将返回'char *'的大小,而不是'char []; [-Wsizeof阵列-参数]

printf("%ld \n", sizeof(ss));
                       ^

我正在C中反转字符数组

#include<stdio.h>
    #define MAXLENGTH 1000
    void reverse(char ss[],char reversest[]);
    int main()
    {
        char s[MAXLENGTH];
        int c;
        char d[MAXLENGTH];
        int i=0;
        while((c=getchar())!=EOF)
        {
          s[i]=c;
          i++;
        }
        s[i]='\0';
        printf("%ld \n",sizeof(s));
        reverse(s,d);
        printf("%s",d);
        return 0;
    }
    void reverse(char ss[],char s2[])
    {
        int i=0;
        int c=1;
        printf("%ld \n", sizeof(ss));
        for(i=0;ss[i]=='\0';i++)
        {
            for(int j=c-1;j>=0;j--)
            {
                 s2[j]=ss[i];
            }
        }
    }

我是新手学习c。 我相信我做错了什么,但我不知道这是什么

请注意,在这一行:

printf("%ld \n", sizeof(ss));

您没有打印出ss数组中的字节数。 您只是在打印指针的大小。 我相信,如果您解决此问题,警告将会消失。

也许您想要这样:

printf("%ld \n", strlen(ss));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM