相关疑难解决方法(0)

为什么获取功能如此危险以至于不应该使用它?

当我尝试编译使用gets()GCC函数的C代码时,

我明白了

警告:

(.text + 0x34):警告:`gets'函数很危险,不应该使用.

我记得这与堆栈保护和安全性有关,但我不确定为什么?

有人可以帮我删除这个警告并解释为什么会有这样的使用警告gets()

如果gets()是如此危险,为什么我们不能删除它?

c gets fgets buffer-overflow

210
推荐指数
9
解决办法
14万
查看次数

分段错误 - C.

为什么以下代码返回分段错误?当我注释掉第7行时,seg错误消失了.

int main(void){
      char *s;
      int ln;
      puts("Enter String");
      // scanf("%s", s);
      gets(s);
      ln = strlen(s); // remove this line to end seg fault
      char *dyn_s = (char*) malloc (strlen(s)+1); //strlen(s) is used here as well but doesn't change outcome
      dyn_s = s;
      dyn_s[strlen(s)] = '\0';
      puts(dyn_s);
      return 0;
    }
Run Code Online (Sandbox Code Playgroud)

干杯!

c segmentation-fault

10
推荐指数
1
解决办法
10万
查看次数

已弃用的C函数列表?

我是一个C菜鸟,我刚刚发现atoi被弃用而不是strtol等.

我在哪里可以找到已弃用的C函数列表?

c

9
推荐指数
1
解决办法
4434
查看次数

数组堆栈溢出

    #include
    int main(void)
    {
        char str[100]="88888888888888";
        char t[20]="";
        gets(t);
        puts(str);
        puts(t);
        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

第一行

555555555555555555555555555555555
Run Code Online (Sandbox Code Playgroud)

投入.

为什么str55555555555?为什么str8888888888888888855555555555588888

c

-1
推荐指数
1
解决办法
119
查看次数

标签 统计

c ×4

buffer-overflow ×1

fgets ×1

gets ×1

segmentation-fault ×1