标签: bus-error

从总结构访问set <int>的"总线错误"

搜索了一段时间,但我无法弄清楚为什么会引起总线错误.

任何帮助将非常感激.

typedef struct {
   set<int> pages;
} someStruct;
...
void someFunction() {
   ...
   someStruct *a = createSomeStruct(); // just mallocs and returns
   a->pages.insert(5);
   ...
}
Run Code Online (Sandbox Code Playgroud)

c++ struct stl bus-error

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

通过函数调用C malloc到指针导致总线错误

由于我对将指针类型内存分配给指针的过分理解,以下原因导致对barrier_create的调用出现总线错误("hi"从不打印).

typedef struct barrier barrier_t;
typedef struct barrier *barrier_p;

barrier_p test_barrier_p;

int main(int argc, char *argv[]) {
    barrier_create(*test_barrier_p);
}

int barrier_create(barrier_p *barrier_pointer) {
printf("hi\n");
    barrier_p old_barrier, new_barrier;
    int count;
    old_barrier = (barrier_p) *barrier_pointer;
    new_barrier = (barrier_p) malloc(sizeof(*new_barrier));
    count = pthread_mutex_init(&new_barrier->lock, NULL);
    new_barrier->is_valid = VALID_BARRIER;
    new_barrier->counter = 0;
    new_barrier->release_flag = 0;
    *barrier_pointer = new_barrier;
    return HAPPY_HAPPY_JOY_JOY;
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么或输入错误?

c malloc struct pointers bus-error

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

SPARC arcitecture中的C++总线错误

我想了解为什么我在使用此代码时出现总线错误.

int main()
{
int p=34;
int *pp= (int *) ((char *)&p+1);
cout<<*pp<<"\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ bus-error

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

Scanf因总线错误而失败

我正在玩C,我遇到了这个错误:

#include <stdio.h>
int main ()
{
 char* foo;
 scanf("%s", foo);
 printf("entered %s", foo);
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

scanf取指针,foo是指针,但我得到总线错误.我怎样才能使它工作?

c pointers scanf bus-error

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

英特尔Mac上的总线错误,为什么?

导致EXC_BAD_ACCESS信号的测试程序.为什么这会导致总线错误?我想将'HI'改为'fI'.

//BUS ERROR TEST

#include <iostream>

void test(char *text)
{
    text[0] = 'f';
}

int main()
{
    char *text = (char *)"HI";
    test(text);
    std::cout << text << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ string bus-error

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

如何解决这个总线错误?

下面的代码在一个程序中运行良好,并在另一个程序中导致总线错误

    char *temp1;
    temp1=(char*)malloc(2);
    for(b=3;b>=0;b--)
       {
       sprintf(temp1,"%02x",s_ip[b]);
       string temp2(temp1); 
       temp.append(temp2);
       } 
Run Code Online (Sandbox Code Playgroud)

s_ip [b]的类型为byte,temp是一个字符串.导致此总线错误的原因是什么?而且,这种奇怪行为的原因是什么?

c++ bus-error

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

关于字符串(C)中的总线错误我感到困惑

我觉得在一个字符串中用C替换两个字符会让人感到困惑.当我将它设置为数组时,它会很好用:

char strBase[8] = "acbdefg";

在这种情况下,我可以交换任何角色.但是当我将其设置为字符串时,它会触发总线错误:

char *strBase = "acbdefg";

非常感谢任何人都可以解释它或给我一些暗示!

c string bus-error

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

标签 统计

bus-error ×7

c++ ×4

c ×3

pointers ×2

string ×2

struct ×2

malloc ×1

scanf ×1

stl ×1