segmentation-fault相关内容
我在一段代码的几个线程中使用 boosts read_json.下面是通话的简化细分.我在一个线程(有时是另一个线程)中遇到了段错误,这让我认为 read_json 不是线程安全的(或者我只是以愚蠢的方式使用它) void someclass::dojson() {使用 boost::property_tree::ptree;ptree pt;std::stringstream ss(json_
..
在这段代码中,对于向量大小,n >=32767,它给出了分段错误,但到 32766,它运行良好.可能是什么错误?这是完整的代码. #include#include#include#include#include#include#include使用命名空间标准;#define 最大 100000布尔比较(对p1,pairp2)
..
我在生活中见过很多核心转储,但这个让我很难过. 上下文: 在 AMD Barcelona CPU 集群上运行的多线程 Linux/x86_64 程序 崩溃的代码被执行了很多 在负载下运行 1000 个程序实例(完全相同的优化二进制文件)每小时会产生 1-2 次崩溃 崩溃发生在不同的机器上(但机器本身非常相似) 所有崩溃看起来都一样(相同的确切地址,相同的调用堆栈) 以下是
..
魔法咒语 LD_PRELOAD=/lib/libSegFault.so someapp 使用 libSegFault.so 运行 someapp,提供关于 SIGSEGV 的回溯信息,如 很多 不同 地方. 除了使用类似 signal(7) 的方法来导致 SIGABRT 调用 SIGSEGV 处理程序之外,还有什么方法可以获取 libSegFault为 assert(3) 失败提供回溯信
..
在下面给出的示例中,我尝试将堆栈大小设置为 1kb. 为什么现在可以在 foo() 中分配大小为 8kb 的 int 数组? #include #include 无效富(无效);int main() {结构 rlimit lim = {1024, 1024};if (setrlimit(RLIMIT_STACK, &lim) == -1)返
..
在我的上一个问题之后,大多数评论说“别这样,你处于困境中,你必须杀死一切并重新开始".还有一个“安全的"解决方法. 我不明白的是为什么分段错误本质上是不可恢复的. 捕获写入受保护内存的时刻 - 否则,将不会发送 SIGSEGV. 如果可以捕获写入受保护内存的时刻,我不明白为什么 - 从理论上讲 - 它不能在某个低级别恢复,并且无法将 SIGSEGV 转换为标准软件异常. 请
..
为了解决我的问题这里,我想知道是否/如何定义命令行的第二个变量char** argv 或 char* argv[] 格式的参数.原因是 pybind11 不允许函数的输入.以下是我尝试过的方法: 方法一: #include int main(int argc,int* argv_){for (int i = 0; i
..
我正在尝试让我的代码从内容涉及的文本文件中读取:(文本文件名为maze1.txt) 5 5%%%%%% %% % %% E%%%%% 但是,每当我尝试运行程序时,我都会收到 分段错误,我认为这与我使用 malloc 的方式有关.我知道我已经使用第一个数字来为我的数组设置边界,但我不确定如何做到这一点. 提供的是我的代码: #include #include
..
当我尝试为输入 1 和 1000 运行此代码时,它会显示分段错误.此代码中的更正是什么? void 排序(int sum[],long int k);int main() {整数总和[100000];诠释 L,R,i,j;长整数 k=0;cin>>L;cin>>R;for(i=L;i 解决方案 由于堆栈溢出导致分段错误.这一行: int sum[100000]; sum使用了400K的栈
..
char *dumpTB (TB tb){char* text = malloc(sizeof(char));诠释 i = 0;//诠释 x = 0;//字符串索引tNode* curr = tb->head;而(当前!= NULL){while(curr->line[x] != '\n'){printf("%d", i);text[i] = curr->line[x];printf("%c\n"
..
我正在尝试扫描一个整数以用于我的程序.但是我的程序在编译期间给了我分段错误,这是给我错误的部分: int main(void){int totalHeight=0,floorWidth=0,amountOfStories,amountWindowForTop,amountWindowForMiddle,amountWindowForBottom,windowHeight,middleWindow
..
#include#include#include主函数(){int a,查询,in,n,b[n],sum[a];总和[1]=0;scanf("%d",&查询);for(a=1;a 我已经制作了在终端中运行的代码. 但在黑客排名中显示 输入(标准输入) 225 你的输出(标准输出) ~stdout 无响应~ 预期输出 92
..
写了一个简单的swap程序,效果不错;但是在打印完所有内容后会出现Segmentation Fault. #include 无效交换(int* p1,int* p2){诠释*温度;*温度= *p1;*p1 = *p2;*p2 = *温度;}诠释主要(){整数a,b;a = 9;b = 8;printf("%d %d \n",a,b);交换(&a,&b);printf("%d %
..
我需要帮助找出为什么我在这里遇到分段错误.我已经检查过了,我认为我的指针做错了,但我可以弄清楚是什么. 我的程序: #include #include 无效加密(char * c);//字符移动175诠释主要(){字符*一个;*a = 'a';/*这里出现分段错误!*/加密(一);printf("测试:%c/n",*a);返回0;};无效加密(字符*
..
这会产生分段错误,因为“QColor colorMap[9]";.如果我删除 colorMap 分割错误就会消失.如果我把它放回去.它回来了.如果我做一个干净的所有然后构建所有,它就消失了.如果我增加它的数组大小,它就会回来.另一方面,如果我减少它,它不会回来.我厌倦了将此数组添加到另一个项目和 可能会发生什么.我真的很想知道.我已经删除了该课程中的所有其他内容.这个小部件的子类化用于提升
..
我是 c 初学者,但我遇到了 scanf 和字符串的问题. 这是我写的一个关于我的问题的例子. #include #include 诠释主要(无效){字符*字符串;scanf("%s", &string);if (strcmp(string, "Foo") == 0)//此处出现分段错误printf("条");} 基本上,这段代码可以编译,但是当我运
..
我在 c 中有两个结构 结构数据{字符*名称;};结构 lst{结构 lst *next;结构表*数据;}; 当我尝试分配一个类似的名称时 l->data->name = d->name;printf("%s",l->data->name); 它给出了分段错误.那么是因为只读内存还是其他原因造成的呢? 好的,我解决了问题:)我已经完成了: l->数据 = d;d 已经有
..
我正在尝试创建一个从 .txt 文件加载数据的函数,但是当它运行时,我总是遇到分段错误(核心转储)错误.该文件包含未知数量的行,而每行都有一个字符串和一个由制表符分隔的整数. list_create 函数只是创建一个数据结构.最后的while循环删除了数据结构,我没有包含代码,因为我确定它不会导致问题但我也想表明我正在释放数据结构.值得一提的是,什么时候使用gdb,我明白了: 程序收到信号SIG
..
任何人都可以帮助我解决这个分段错误.这段代码很简单,但错误很难弄清楚. 结构链接{整数键;无符号数据:2;结构链接*下一个;结构链接 *previous;};struct Link* addInOrder(struct Link *, struct Link);int main() {结构链接*头;结构链接数据1;结构链接数据2;结构链接数据3;数据1.key = 25;数据1.数据=1;dat
..
我的代码的目标是接收 2 个命令行参数(包括程序名称),并根据给定的第二个命令行参数打印出如图所示的响应.如果命令行参数是一个整数,则用户的输入被接受或“成功",如果它是其他任何东西(例如,一个字符串或多个命令行参数),它将为 Null 并且将显示错误消息.这是为熟悉的人准备的CS50凯撒 我的代码如下: #include #include #includ
..