小编hiy*_*hiy的帖子

访问多维数组的元素是否越界未定义行为?

请原谅令人困惑的问题标题,但我不确定如何更清楚地表达它。

在 C 中,越界访问数组被归类为未定义行为。然而,数组元素保证在内存中连续排列,数组下标运算符是指针运算的语法糖(例如x[3] == *(x + 3))。因此,我个人希望以下代码的行为是明确定义的:

int array[10][10];
int i = array[0][15]; // i == array[1][5]?
Run Code Online (Sandbox Code Playgroud)

如果我对标准的解释是正确的,这将是未定义的行为。我错了吗?

c arrays multidimensional-array undefined-behavior

7
推荐指数
2
解决办法
185
查看次数

使用pip在OS X上重新安装numpy - "无法修改或删除,因为OS X需要它"

我正在尝试升级numpymacOS上的库,但pip似乎没有足够的权限来删除numpy.运行`pip install --upgrade pip给我这个回溯:

?  Desktop sudo -H pip install --upgrade numpy
Collecting numpy
  Using cached numpy-1.11.3-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Installing collected packages: numpy
  Found existing installation: numpy 1.8.0rc1
    DEPRECATION: Uninstalling a distutils installed project (numpy) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.
    Uninstalling numpy-1.8.0rc1:
Exception:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 215, in main
    status …
Run Code Online (Sandbox Code Playgroud)

python macos numpy pip

6
推荐指数
1
解决办法
4672
查看次数

strtok_s 在 os x 上未定义

我正在尝试使用 C11 函数strtok_s,该函数应该在 中定义<string.h>,但是当我尝试使用它时,clang 给了我一个链接错误。编译这个程序:

#include <string.h>

int main() {
    char * buffer;
    char * state;
    rsize_t strmax = 0;
    char * fpl = strtok_s(buffer, &strmax, "\n", &state);
}
Run Code Online (Sandbox Code Playgroud)

给我这个错误:

repro.c:7:15: warning: implicit declaration of function 'strtok_s' is invalid in
  C99 [-Wimplicit-function-declaration]
    char * fpl = strtok_s(buffer, &strmax, "\n", &state);
                 ^
repro.c:7:9: warning: incompatible integer to pointer conversion initializing
  'char *' with an expression of type 'int' [-Wint-conversion]
    char * fpl = strtok_s(buffer, &strmax, "\n", &state); …
Run Code Online (Sandbox Code Playgroud)

c string macos clang tr24731

2
推荐指数
1
解决办法
947
查看次数

在Go中转换相对于绝对URL

我正在写一个小的网络爬虫,并且我正在爬虫的网站上的许多链接都是相对的(/robots.txt例如,它们是相对的)。如何将这些相对URL转换为绝对URL(因此/robots.txt=> http://google.com/robots.txt)?Go有内置的方法吗?

url go relative-url

2
推荐指数
2
解决办法
462
查看次数

使用宏命名C中的函数

前几天我试图使用宏来定义一个像这样的函数(显然简化):

#define DEF_ADD(name) \
    int add_name(int x, int y) { \
        return x + y; \
    } \
Run Code Online (Sandbox Code Playgroud)

现在,我希望代码片段DEF_ADD(hello)定义函数add_hello.但是,宏调用定义了一个名为的函数add_name.我希望这与扫描有关,但我找不到重建我正在寻找的行为的方法.任何想法如何做到这一点?

c macros

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