本文目錄一覽:
C語言中結構體數組的大小如何動態分配
結構體類型數據組就和我們平常定義的基本類型的數組一樣,只不過是類型變了。
基本類型數組動態分配大小:
int* a = (int*)malloc(sizeof(int)*10) ; //動態分配10個大小的int類型的內存空間
結構體類型數組分配大小:
struct DIYDEFINE
{
int a;
char ch;
long lnum;
};
DIYDEFINE* pDiy = (DIYDEFINE*)malloc(sizeof(DIYDEFINE)*10); //動態分配10個大小的結構體類型DIYDEFINE的內存空間。
C語言中怎麼定義動態的數組長度
動態數組長度,對於部分新的編譯器,支持C99的,可以直接用變量定義數組
比如
func(int n)
{
int a[n];
….
}
不過 有些編譯器不支持 會報錯
就只能使用動態數組,也就是malloc
如
func(int n)
{
int *a;
a=(int *)malloc(sizeof(int)*n);
….
free(a);
}
C語言如何動態分配數組
1
定義指針。
2
使用malloc函數分配內存。
3
對數組進行訪問即可。
對於一維動態數組,直接定義一維指針,並分配內存空間即可。
比如int類型的10個元素動態數組,寫作
int
*a;
a
=
(int
*)malloc(sizeof(int)
*
10);
如果是多維數組,需要從高維向低維逐層分配。如二維數組10*100空間。
int
**a;
int
i;
a
=
(int
**)
malloc(sizeof(int
*)
*
10);
//
先分配10個int*的空間。
for(i
=
0;
i
100;
i
++)
a[i]
=
(int
*)malloc(sizeof(int)
*
100);
//
對於每個int*,分配100個元素的空間。
c語言中如何自定義數組長度
動態分配的數組可以自定義數組的長度,示例如下:
#include stdio.h
#include string.h
#include stdlib.h
int main()
{
printf(“輸入要分配的內存大小:”);
int size;
scanf(“%d”, size); //輸入自定義的數組長度
int *pstart = (int *)malloc(sizeof(int) *size);
if (pstart==0) {
printf(“不能分配內存\n”);
return 0;
}
memset(pstart, 0x00, sizeof(int) * size);
int inx;
for (inx=0; inx!=size; ++inx) pstart[inx] = inx;
for (inx=0; inx!=size; ++inx) printf(“%d\t”, pstart[inx]);
printf(“\n”);
return 0;
}
原創文章,作者:TLLM,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/140217.html