int* arr_1;. int* arr_2;. 當然實際這樣是不能用的(還要new[c++] ). 目的只是想要你想像成你宣告了2個一維陣列(指標). *(arr_1)=arr_1[0];. *(arr_1+1)=arr_1[1];*/. ... <看更多>
動態二維陣列c 在 C++ new 動態記憶體配置用法與範例 - ShengYu Talk 的推薦與評價
本篇ShengYu 介紹C++ new 動態記憶體配置/ delete 釋放記憶體用法, 以下C++ ... C/C++教學 ... new int 的用法; new int 一維陣列; new int 二維陣列 ... ... <看更多>
動態二維陣列c 在 php二維陣列宣告-推薦/討論/評價在PTT、Dcard、IG整理一次看 的推薦與評價
如何讓procedure傳入參數為二維動態陣列- Delphi KTop ... C++亂數產生二維陣列的問題- 城市黃頁,最豐富的商業情報網 · https://dow10k.com/in/C++亂 ... ... <看更多>
動態二維陣列c 在 php二維陣列宣告-推薦/討論/評價在PTT、Dcard、IG整理一次看 的推薦與評價
如何讓procedure傳入參數為二維動態陣列- Delphi KTop ... C++亂數產生二維陣列的問題- 城市黃頁,最豐富的商業情報網 · https://dow10k.com/in/C++亂 ... ... <看更多>
動態二維陣列c 在 [問題] 動態配置下二維陣列參數傳遞- 看板C_and_CPP 的推薦與評價
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
GCC
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
None
問題(Question):
想嘗試練習指標與陣列的相關使用
compile時就宣告好大小的二維陣列依照置底方式傳遞應該沒問題
在動態配置的陣列傳遞時,想要採用轉成一維陣列卻無法得到正確結果
餵入的資料(Input):
row=5
column=5
預期的正確結果(Expected Output):
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
錯誤結果(Wrong Output):
5*5的完全不是1的數字
程式碼(Code):(請善用置底文網頁, 記得排版)
#include<stdio.h>
int c_array(int *a,int row,int column,int i,int j)
{
printf("%d ",*( a + i*column +j ) );//使用pointer來控制矩陣
}
int main(void)
{
int **ptr=NULL;
int row,column;
int i,j;
while(1)
{
printf("row=\n");
scanf("%d",&row);
printf("column=\n");
scanf("%d",&column);
if(row==0 && column==0) break;
ptr=(int**)malloc(sizeof(int*)*row);
//生成一維指標陣列
for(i=0;i<row;i++)
{
ptr[i]=(int*)malloc(sizeof(int)*column);
}//二維
for(i=0;i<row;i++)
{
for(j=0;j<column;j++)
{
ptr[i][j]=1;
}
}//將矩陣付值:1
for(i=0;i<row;i++)
{
for(j=0;j<column;j++)
{
//printf("%d",ptr[i][j]);//測試用
c_array((int*)ptr,row,column,i,j);//使用另外函數來print
}
printf("\n");//換行
}
for(i=0;i<row;i++) free(ptr[i]);
free(ptr);//釋放記憶體
}
return 0;
}
補充說明(Supplement):
無
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.169.182.246
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1422963297.A.B4F.html
... <看更多>