相关疑难解决方法(0)

我在哪里可以找到当前的C或C++标准文档?

对于许多问题,答案似乎可以在"标准"中找到.但是,我们在哪里找到它?最好是在线.

谷歌搜索有时会觉得徒劳,尤其是对于C标准,因为他们在编程论坛的大量讨论中被淹没.

要开始这个,因为这些是我现在正在搜索的,那里有很好的在线资源:

  • C89
  • C99
  • C11
  • C++ 98
  • C++ 03
  • C++ 11
  • C++ 14

c c++ standards c++-faq

394
推荐指数
8
解决办法
12万
查看次数

如果新块大小小于初始值,我应该强制执行realloc检查吗?

在这种情况下realloc会失败吗?

int *a = NULL;

a = calloc(100, sizeof(*a));
printf("1.ptr: %d\n", a);

a = realloc(a, 50 * sizeof(*a));
printf("2.ptr: %d\n", a);

if(a == NULL){
    printf("Is it possible?\n");
}

return (0);
Run Code Online (Sandbox Code Playgroud)

}

我的输出是:

1.ptr: 4072560
2.ptr: 4072560
Run Code Online (Sandbox Code Playgroud)

所以'a'指向相同的地址.那么我应该强制执行realloc检查吗?

稍后编辑:

  • 在Windows XP下使用MinGW编译器.
  • 这个行为与Linux上的gcc类似吗?

稍后编辑 2:检查这种方式可以吗?

int *a = NULL, *b = NULL;

a = calloc(100, sizeof(*a));
b = realloc(a, 50 * sizeof(*a));

if(b == NULL){
    return a;
}
a = b;
return a;
Run Code Online (Sandbox Code Playgroud)

c realloc

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

修剪时realloc会失败(返回NULL)吗?

如果做下一个:

int* array = malloc(10 * sizeof(int));
Run Code Online (Sandbox Code Playgroud)

他们使用realloc:

array = realloc(array, 5 * sizeof(int));
Run Code Online (Sandbox Code Playgroud)

在第二行(并且只有它),它可以返回NULL吗?

c memory-management realloc

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

标签 统计

c ×3

realloc ×2

c++ ×1

c++-faq ×1

memory-management ×1

standards ×1