看板 C_and_CPP 關於我們 聯絡資訊
請問一下, 我在做編譯的時候,出現了 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