2 andy  zou Andy__Zou 于 2016.03.08 16:54 提问

写入位置时发生访问冲突。自己写了个函数用来读取device中的数据至OMEGA中 调用时报错 5C
 OMEGA=ReadtoOMEGA(temp_data,OMEGA,width,num_pixels,bands,e1,count_Duanyuan);

 float * ReadtoOMEGA(void const * const device,float * OMEGA,size_t const width,size_t const num_pixels,size_t const bands,int e,int count)
{
    int i=0,posOmega=0,posData=0;
    float *ptr=(float *)device;
    float *ptr_OMEGA=(float *)OMEGA;
#pragma unroll
    for (i=0;i<bands;i++)
    {
        posOmega=i+count*bands;
        posData=e+i*num_pixels;
        ptr_OMEGA[posOmega]=ptr[posData];
    }
    //float *OMEGA_temp=(float *)ptr_OMEGA;
    //OMEGA=OMEGA_temp;
    return ptr_OMEGA;
}

3个回答

wangzhiyu1980
wangzhiyu1980   2016.03.08 17:02

没有错误信息,恐怕不太好看。

Andy__Zou
Andy__Zou 出现这样的报错信息
2 年多之前 回复
Andy__Zou
Andy__Zou   2016.03.08 17:05
wangzhiyu1980
wangzhiyu1980   2016.03.08 23:50

你这个是用 cuda做图像处理吗?

如果有矩阵计算转置的话,可以注意一下边界,可以看看是不是有越界了。

内存使用出问题
1)可以看看是不是用了空指针,指针没有分配内存就用了。

2)用了野指针。

3)最坏的情况看看是不是有踩内存的状况发生。

在详细恐怕就得单步调试,打印一些log了。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
读取/写入位置发生访问冲突
问题描述 C/C++程序运行时提示读取/写入位置发生访问冲突。例如:0x00007FFF33515D43 (swscale-4.dll) (QTDemo0.exe 中)处的第一机会异常:  0xC0000005:  读取位置 0x0000000000000040 时发生访问冲突。 产生原因 一般都是由于发生异常处的代码中,涉及到数据的读取或写入,并且访问数据时使用的是指针,而该指针并未得到合
没有躲过的坑--0xC0000005: 读取位置 xxx时发生访问冲突
Bjarne Stroustrup老爷子说过: “C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off.” 最近的工程时不时的出现0xC0000005: 读取位置 xxx时发生访问冲突,导致崩溃。先看看下面的程序:#includ
写入位置时发生访问冲突
写入位置时发生访问冲突 原因总结: 1:使用了未初始化的指针(未给指针分配空间) 2:使用了已经删除的指针 3.char str[]="ABCD",这个数组的存储空间是在栈中开辟的(在栈中开辟了一个数组?) char *str="ABCD",str指向的是静态存储区,"ABCD"是位于常量区的,指针str只是指向了这个位置(只在栈中开辟了一个指针内存?),那么这些值就
C++读取XXX位置时发生访问冲突的一种情况
今天在写到如下代码时出现了访问冲突(执行children.push_back()时出现错误):struct TreeTag { int val; vector<Node> children; }; Node newNode(int val) { Node n = (Node)malloc(sizeof(struct TreeTag)); n->val = val;
VS2012 msvcr110d.dll xxxxxx处有未经处理的异常:0xC0000005:写入位置xxxxxx时发生访问冲突(scanf_s引起)-已解决
源代码见《C程序设计》P307 Example9.7 功能为输入三名学生的学号、姓名、三科成绩,输出成绩最高的学生信息和其平均成绩。 源代码如下: #include #define N 3 struct Student { int num; char name[10]; float score[3]; float aver; }; int main() { void i
读取位置时发生访问冲突
出现这种错误主要是访问了不属于自己的内存空间,大概出错有以下几种原因: 1、数组分配的内存空间比较小,然后给数组赋的值比较大。例如: char buf[5]; buf = "哒哒哒哒哒哒哒哒哒哒哒哒哒哒哒哒哒哒哒哒哒"; 这样就会出现错误。 解决方法: 给数组分配更大的内存空间,例如:char buf[1024]; 2、句柄或指针在使用前被释放 分析: 内存冲突问题经
Win10下C++代码文件夹遍历错误:0xC0000005: 写入位置时发生访问冲突。
Win10下文件夹遍历代码
0xC0000005: 读取位置 0xfdfdfe01 时发生访问冲突/“Stack Overflow”
访问位置发生冲突,多半是内存分配出现了问题。
QT读取位置时发生访问冲突
在VS下编写QT小程序测试各种输出时,报了一个很常见又很讨厌的错误“...读取位置...时发生访问冲突”,调试跟进也没有指针乱指、内存未分配、只读却写等问题,在已经放弃了这种输出方法换下一种时,发现UI的参数每初始化一下就会输出一次,但是原本应该是全部初始化后才输出一次的。于是回过头去看UI部分,原来是connect()的位置问题... connect()的位置很可能会导致这种访问冲突问题,当c
opencv Mat 类型数据传递,出现访问冲突,有解决方法,但不知原因
将Mat 类型 void readSiftFile(const char* nameSiftFile,Mat& des)