搜索
楼主: 4k-Rn
打印 上一主题 下一主题

12个有趣的C语言问答

[复制链接]
板凳
 楼主| 发表于 2012-12-18 21:08:05 | 只看该作者
2,main() 方法的返回类型

Q:请问下面这段代码能否通过编译?如果能的话,那么这段代码中隐含什么问题吗?

#include<stdio.h>  
   
void main(void)  
{  
    char *ptr = (char*)malloc(10);  
    if(NULL == ptr)  
    {  
        printf("\n Malloc failed \n");  
        return;  
    }  
    else
    {  
        // Do some processing  
        free(ptr);  
    }  
    return;  
}
A:答案是代码能通过编译,但是会留下针对main()方法的返回类型的警告。main()方法的真正返回类型应该为’int’而非’void’。这是因为’int’返回类型能够让程序返回状态值。尤其是当这段程序作为其他应用的附属程序时这个状态值将更加重要。
沙发
 楼主| 发表于 2012-12-18 21:07:52 | 只看该作者
1,strcpy() 方法

Q:密码防护是很基本的功能,看看能否搞定下面这段代码?

#include<stdio.h>  
   
int main(int argc, char *argv[])  
{  
    int flag = 0;  
    char passwd[10];  
   
    memset(passwd,0,sizeof(passwd));  
   
    strcpy(passwd, argv[1]);  
   
    if(0 == strcmp("LinuxGeek", passwd))  
    {  
        flag = 1;  
    }  
   
    if(flag)  
    {  
        printf("\n Password cracked \n");  
    }  
    else
    {  
        printf("\n Incorrect passwd \n");  
   
    }  
    return 0;  
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表