clang 标准库错误或 c++未定义的行为?
以下 C++ 程序是否包含任何未定义行为? int main() { struct entry { uint32_t hash; uint32_t idx; }; entry arr[31] = { { 7978558, 0}, { 9241630…
for 循环中的变量正在更改,而在 c 中不应该更改
这是代码: #include // printf #include // get_long #include // strlen #include // stdlib int credit_test(string input); int main(void) { str…
为什么我的结构成员之一在尝试在函数中更改后未定义?我传递了结构作为参考
我正在为 search_tree() 函数编写代码,该函数用目录及其子目录中的所有文件填充 chArray 结构(动态字符数组)。 但是,我在使用 add_elements() 函…
为什么这些构造使用增量前和增量后未定义的行为?
#include int main(void) { int i = 0; i = i++ + ++i; printf("%d\n", i); // 3 i = 1; i = (i++); printf("%d\n", i); // 2 Should be 1, no ? vola…
用相同类型的新对象覆盖对象并使用 this 闭包
在以下代码中,一个对象被相同类型的新对象覆盖,其中 lambda 表达式创建一个使用旧对象的 this 的闭包。旧地址 (this) 保持不变,新对象具有相同的布…
strcpy segfault 将文件内容复制到数组
这是我的代码 char url[MAX_WORD + 1]; char *urls[MAX_WORD + 1]; //char word[MAX_WORD + 1]; while(fscanf(fp, "%100s", url) == 1) { strcpy(urls…
有条件地不修改常量数据是 C 中的未定义行为吗?
我们有以下函数: void foo(int flag, void *ptr) { if (flag) strcpy(ptr, "Hello World"); code_that_does_not_attempt_to_modify_data_pointed_to_…
如何修复由 malloc 创建的链表中设置结束节点导致分段错误的问题?
我正在学习动态内存管理,并且正在开发一个程序,该程序可以让您设置数组的大小,然后生成它并打印出来。 这是代码: #include #include typedef stru…
默认初始化显式构造函数 c++
如果默认构造函数是显式的,那么 C++11 中的默认初始化如何工作?例如: #include struct Foo { int x; explicit Foo(int y = 7) : x{y} {} } int mai…
为什么变量可以在没有声明和定义“正在运行”的情况下被初始化(和使用)?
C++ 不允许“转到定义:” goto jumpover; int something = 3; jumpover: std::cout << something << std::endl; 这将按预期引发错误,因为“某些内容…
使用 std::vector>作为 T 的平面连续数组
std::vector 将其元素连续存储在内存中。 std::array 只是 N 个连续 T 元素的包装,直接存储在对象本身中。 因此我想知道大小为 n 的 std::vector> 是…
为什么字符数组末尾有垃圾字符?
我有以下代码(来自 K&R 练习 2-4): #include #define MAXLINE 1000 /* maximum input line size */ void squeeze(char s1[], char s2[]); /* Exerc…
是否存在取消引用(但不使用)空指针来创建空引用的平台或情况会表现得很糟糕?
我目前正在使用一个库,该库使用类似于 T& being_a_bad_boy() { return *reinterpret_cast(0); } 引用 T 的代码,但实际上并不存在 T。这是未定义的行…