[問題] CUDA 警告:subscript out of range

看板C_and_CPP (C/C++)作者 (aada)時間16年前 (2010/01/18 15:36), 編輯推噓1(109)
留言10則, 5人參與, 最新討論串1/2 (看更多)
請問一下, 我在做編譯的時候,出現了 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

01/18 15:46, , 1F
yy[i][j]=xx[i][j]+1; ← i j 位置放錯了@@?
01/18 15:46, 1F

01/18 15:48, , 2F
你好,這個警告i,j的位置沒有關係~
01/18 15:48, 2F

01/18 15:58, , 3F
yy[NNy][NNx]很明顯超界了,最多只能 yy[NNy-1][NNx-1]
01/18 15:58, 3F

01/18 16:07, , 4F
但是為什麼我在c上面,也是yy[qqx][qqy],但編譯沒有顯示警告呢
01/18 16:07, 4F

01/18 16:08, , 5F
c 不會檢查阿 @@
01/18 16:08, 5F

01/18 16:52, , 6F
return 的意思是..讓我相當好奇
01/18 16:52, 6F

01/18 22:07, , 7F
我也不懂那個return是在幹嘛... =.=|||
01/18 22:07, 7F

01/18 23:11, , 8F
請問我不使用return的畫還有其他方法傳回來嗎?thx
01/18 23:11, 8F

01/19 00:01, , 9F
我看不到cuda的成份呢
01/19 00:01, 9F

01/19 00:46, , 10F
這只是我程式的一部分,因為主要出線的警告在這,就PO這了
01/19 00:46, 10F
文章代碼(AID): #1BL0-8VU (C_and_CPP)
文章代碼(AID): #1BL0-8VU (C_and_CPP)