问题标签 [tr24731]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
24763 浏览

c++ - strcpy_s 不适用于 gcc

我有一个 C++11 项目,并添加了一些strcpy_s方法调用。这适用于 Windows,但是在 gcc 上编译时,会出现一个错误,指出strcpy_s找不到符号。

我确实添加了这条线

#define __STDC_WANT_LIB_EXT1__ 1

到代码,无济于事。

0 投票
1 回答
931 浏览

c - scanf的宽度规格和scanf_s的区别

此代码将保护我们的程序免受缓冲区溢出攻击。

但是没有scanf_s,我们可以这样写:

我认为这段代码也会阻止缓冲区溢出。这是真的?

那么两种方式的基本区别是什么?

如果 scanf 的宽度规范是阻止缓冲区溢出,为什么我们称原始 scanf 为“不安全”?

0 投票
2 回答
981 浏览

c - 如何在包含可选字符串函数的 Mac OS 上安装 C11 编译器?

我正在尝试下面的代码来查看是否支持 C 中的可选字符串函数(我已经安装了 Mac OS X El Capitan 和 XCode)......

...但它表明他们不是。

我已经尝试了 XCode 中的所有不同编译器(cc、gcc、llvm-gcc、clang)。

我也尝试过brew install gcc假设 GNU C 编译器会给我这些额外的功能,但事实并非如此。

有没有办法在 Mac OS 上简单地安装一个兼容 C11 的编译器,它会给我这些额外的(即安全的)字符串函数。

0 投票
3 回答
5279 浏览

c - 使用 scanf_s 读取字符

我只是在搞乱 C 并遇到了这个小问题。正如您从我的输出中看到的那样,我得到了“╠”这个字符。

查看程序输出

0 投票
2 回答
653 浏览

c++ - C++ strcpy_s IntelliSense 错误

我在这个地方有错误:

错误是:

这是 game.board_now 函数:

这是我尝试使用的其余代码strncpy_s()

该代码基本上是用于国际象棋程序的,我在进行更改后尝试接收棋盘,但我不知道如何格式化他strcpy_s()以便将他放入数组并将其发送回给定的 exe。

0 投票
2 回答
240 浏览

c - Get_s 功能不工作

我的书说该get_s()功能是该功能的更好替代品,该gets()功能已弃用且不应使用。但是,当我尝试使用该get_s()功能时,它总是给我一个错误:

此页面说明了有关 gets_s 的一些信息,我并不真正了解它在ISO/IEC 99. 它不应该适用于所有编译器吗?我很确定我使用的是最新版本的 MinGW 编译器。

我应该如何使用这个功能?使用gets()or scanf()(而不是scanf_s())或fgets()overfgets_s()不好?

0 投票
0 回答
1163 浏览

c - 如何在 gcc 中使用 strncpy_s?

我正在尝试在我的 C++ 程序中使用 strncpy_s 功能,但是由于宏定义,我的代码无法访问 strncpy_s,请让我知道如何在 gcc 中使用 strncpy_s,在此先感谢,我的代码如下

而且我的代码没有进入 ifdef ,还有其他使用 strncpy_s 的方法吗?

0 投票
1 回答
52 浏览

c - scanf_s 每次都返回 Null

我将 scanf_s 用于两个不同的输入并将它们放入 char 数组中。我附上了代码和它给出的输出

输出是:

对这个问题的任何帮助都会很好,因为我所做的任何 scanf_s 都不起作用,它让我发疯。

0 投票
1 回答
602 浏览

c - 架构 x86_64 的未定义符号:“_gets_s”

我正在尝试从《Beginning C 5th Ed》一书中编译一个示例程序。通过艾弗霍顿。尝试在 OSX 上编译它,我从 gcc 得到以下输出:

程序代码如下:

我以为我已经定义了可选功能,但我想我没有?这只是一本过时的书还是一个不好的例子,还是我在尝试编译它时做错了什么?

0 投票
2 回答
4308 浏览

c++ - MSVC 2017 下缺少 C11 strerrorlen_s 函数

我正在尝试从MSVC 2017下的C11 标准中查找要包含的strerrorlen_s函数的标头。我需要它来为要使用的错误消息分配空间。代码如下:strerror_s

在文档中有以下文字:

与所有边界检查函数一样,strerror_s 和 strerrorlen_s 只有在由实现定义并且用户在 include之前__STDC_LIB_EXT1__定义__STDC_WANT_LIB_EXT1__为整数常量时才保证可用。1string.h

MSVC 2017没有定义__STDC_LIB_EXT1__,似乎__STDC_WANT_LIB_EXT1__在包含之前定义string.h没有效果。虽然strerror_s可用。

  • strerrorlen_s可以在带有MSVC 2017的Windows下使用吗?
  • 如果该功能不可用,是否有可能通过其他方式获取错误消息长度?
  • Windowsstrerror_s下的线程安全吗,因为在Linux下似乎不是,如果需要线程安全,必须使用strerror_r ,但它在Windows上不可用?