作者aada (aada)
看板C_and_CPP
標題[問題] CUDA 警告:subscript out of range
時間Mon Jan 18 15:36:36 2010
請問一下, 我在做編譯的時候,出現了 warning: subscript out of range
是出現了什麼問題嗎, 我用c寫沒問題,但是cuda就出現這樣的警告,
雖然程式還是可以跑,但想了結出了什麼問題
謝謝
以下是我的程式碼
#include <stdio.h>
#include <stdlib.h>
#include <cuda_runtime.h>
#include <cutil.h>
#include <math.h>
#define NNy 2
#define NNx 2
float addd(float xx[NNy][NNx], float yy[NNy][NNx])
{
for(int i=0; i<NNx; i++)
{
for(int j=0; j<NNy; j++)
{
yy[i][j]=xx[i][j]+1;
}
}
return yy[NNy][NNx]; <----------------------- warning: subscript out of range
}
int main()
{
float input[NNy][NNx]={ {1.0, 2.0}, {3.0, 4.0} };
float output[NNy][NNx];
addd(input, input);
for(int i=0; i<NNx; i++)
{
for(int j=0; j<NNy; j++)
{
printf("%f ",output[i][j]);
}
printf("\n");
}
system("PAUSE");
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.122.192.147
→ loveme00835:yy[i][j]=xx[i][j]+1; ← i j 位置放錯了@@? 01/18 15:46
→ aada:你好,這個警告i,j的位置沒有關係~ 01/18 15:48
→ loveme00835:yy[NNy][NNx]很明顯超界了,最多只能 yy[NNy-1][NNx-1] 01/18 15:58
→ aada:但是為什麼我在c上面,也是yy[qqx][qqy],但編譯沒有顯示警告呢 01/18 16:07
→ loveme00835: c 不會檢查阿 @@ 01/18 16:08
推 alongalone:return 的意思是..讓我相當好奇 01/18 16:52
→ WPC001:我也不懂那個return是在幹嘛... =.=||| 01/18 22:07
→ aada:請問我不使用return的畫還有其他方法傳回來嗎?thx 01/18 23:11
→ sunneo:我看不到cuda的成份呢 01/19 00:01
→ aada:這只是我程式的一部分,因為主要出線的警告在這,就PO這了 01/19 00:46