我想以相反的方式填充一個二維數組,但我總是得到相同的錯誤:核心轉儲。如何以相反的方式填充一個二維數組 - C
當我說我的意思是相反的方式,通常我們這樣做
for(int i=0; i<MaxColumns; i++)
for(int b=0; i<MaxRows; b++)
array[i][b] = random value;
我想要做的是爲每一行,我想填充每列單行,然後傳遞給下一行,並執行相同的操作。此時我爲每列動態聲明一個新行。
這就是我努力:
int i = atoi(argv[1]);
int **array = (int**)malloc(i * sizeof(int*));
for (lines =0; lines <MAXLINES; lines ++) {
for (colunms =0; colunms <i; colunms ++) {
array[colunms] = (int*)malloc(1 * sizeof(int));
v=colunms+lines;
array[colunms][lines]=v;
}
}
和錯誤接着說:
array[colunms][lines]=v;
------最後一次更新問題----
已更新,雖然我試過這個代碼
for (lines =0; lines <MAXLINES; lines ++) {
array[colunms] = (int*)malloc(colunms * sizeof(int));
for (colunms =0; colunms <i; colunms ++) {
v=colunms+lines;
array[colunms][lines]=v;
}
}
我一直在覈心轉儲:
array[colunms][lines]=v;
那麼,你在哪裏聲明變量'v'?這個變量的類型是什麼,你得到了什麼樣的錯誤(即它是編譯時錯誤還是運行時錯誤)? – 2015-03-08 21:29:11
未複製到示例中,但其聲明爲int。抱歉。 – user3743144 2015-03-08 21:30:23
「錯誤在繼續......」這是你描述這個錯誤的最好辦法嗎? – 2015-03-08 21:31:30