1樓:匿名使用者
int *a[2];
int n;/*n緊跟a定義*/
scanf("%d",&n);
a[2]=(int *)calloc(n,sizeof(int)); /*a[2] 陣列越界啦,越界之後,就覆蓋了n的值了*/
a[0]=(int *)calloc(n,sizeof(int));
a[1]=(int *)calloc(n,sizeof(int));
-----------------
我的意思是你定義了int a[2];
你只能訪問a[0]和a[1],a[2]就是下標越界了int (*a)[2];/*陣列指標*/
int n;
scanf("%d",&n);
a=(int (*)[2])malloc(2,sizeof(int));
2樓:匿名使用者
應該這樣:
char **a;
int x;
scanf("%d",&x);
a=malloc(sizeof(char *)*x);
a[0]=malloc(sizeof(char)*20);
scanf("%s",a[0]);
puts(a[0]);
a[x-1]=malloc(sizeof(char)*30);
scanf("%s",a[x-1]);
puts(a[x-1]);
c語言中如何定義動態二維陣列並輸出
3樓:會飛的小兔子
intmain()
//釋放記憶體
for(i=0;ifree(p[i]);
free(p);
return0;
}擴充套件資料c語言中通過函式傳遞二維陣列
#include
void func(int n, int a[size])void main()
4樓:達豐
實現先輸入二維陣列的行數m和列數n,並再輸入m*n個整型資料存到動態二維陣列中。最後輸出所有二維陣列的元素值。**如下:
int main()
//釋放記憶體
for(i = 0; i < m; i ++)free(p[i]);
free(p);
return 0;}
5樓:_葉子妞妞
可以按照下面步驟進行定義二維陣列並輸出:
1 定義二維指標。
2 確定陣列維數,即行數和列數。
3 申請行數個一維指標大小空間,並賦值給二維指標。
4 對於每個一維指,申請列數個元素的空間,並賦值給對應的一維指標。
5 輸入或賦值資料。
6 使用雙重迴圈,逐個範圍儲存單元並輸出。
7 逐個釋放一維指標上的記憶體。
8 釋放二維指標上的記憶體。
以整型二維陣列為例:
下面的**,實現先輸入二維陣列的行數m和列數n,並再輸入m*n個整型資料存到動態二維陣列中。最後輸出所有二維陣列的元素值。
#include //包含輸入輸出函式
#include //包含動態記憶體分配函式。
int main()
//釋放記憶體
for(i = 0; i < m; i ++)free(p[i]);
free(p);
return 0;}
6樓:匿名使用者
多維陣列一維
化...
#include
#include
int main()
}for(i=0;i printf("\n");}} 7樓:匿名使用者 先定列空行 a[2] 寫完以後我發現有點長,樓主給點耐心看,不懂我們再交流 a是整個二維陣列的首地址,short長度為2,sizeof a 2 5 5 50 a 1指向二維陣列的第二個元素,它僅僅是一個指標,如果在a 1前面加一個 號,就是第二個元素的值,即a 0 1 所以,a 1是一個指標,它指向二維陣列中的某個數,指... 從二維陣列的角度來看,a是二維陣列名,a代表整個二維陣列的首地址,也是二維陣列0行的首地址a 1代表第一行的首地址。int a 3 4 設陣列a的首地址為1000。a 0 是第一個一維陣列的陣列名和首地址,因此也為1000。a 0 或 a是與a 0 等效的,它表示一維陣列a 0 0 號元素的首地址,... 以下能正確定義二維陣列的是 以下能正確定義 陣列的是 去掉二維兩字 a int a 3 語法錯,沒帶初始化,不允許用 空白 不允許 陣列大小不定。b int a 正確定義了陣列,是一維陣列,陣列元素只有1 個,初始化數值為 2 3 就是 6。c int a 3 語法錯,花括號裡沒填初始化數值。d i...c語言二維陣列問題
C語言的問題關於二維陣列的
關於C語言定義二維陣列的問題,c語言關於定義二維陣列的問題