```
//void test()
typedef
struct student student;
void *fun()
char fun1()
int main(int argc, const
char * argv)
從鍵盤輸入字串,將字串中的數字挑出來存到另乙個陣列
char src[20] = ;
char des[20] = ;
int j = 0;
printf("輸入:");
scanf("%s", src);
for (int i = 0; i < strlen(src); i++)
}printf("%s", des);
1.開闢乙個空間,存乙個double型別的值,並列印
double a = 2.432;
printf("%f \n", a);
2.開闢乙個空間,存 8 個double型別的值,並列印每個元素
double *p = malloc(sizeof(double) * 8);
double val[8] = ;
p = val;
for (int i = 0; i < 8; i++)
3.開闢乙個空間,存乙個結構體(student)型別的值(為每個成員賦值),並列印
student stu = ;
printf(" %d %s", stu.num, stu.name);
4.開闢乙個空間,存 3 個結構體(student)型別的值(為每個成員賦值),並列印
student stu[3] = ,,};
for (int i = 0; i < 3; i++)
輸入3個單詞,動態分配記憶體儲存單詞,並在最後輸出
char temp[20] = ;
char *words[3] = ;
for (int i = 0; i < 3; i++)
for (int i = 0; i < 3; i++)
//釋放空間
for (int i = 0;i < 3 ; i++)
int a = 0; int *p = malloc(sizeof(int ));
1.可以通過名字和位址訪問 只能通過位址訪問
2.在編寫**是限定好大小 可以在執行時動態分配大小
3.生存週期結束後系統自動釋放 只能手動釋放
4.兩次連續定義,位址連續 不一定連續
5.棧區 -開闢小空間 堆區- 大空間
int a = 0 ;
printf("棧 區:%p\n",&a);
int *p = malloc(sizeof(int));
printf("堆 區:%p\n",p);
static
int b = 0;
printf("靜態區:%p\n",&b);
char *s = "adads";
printf("常量區:%p\n", s);
printf("**區:%p", fun);
/ 動態記憶體分配方式
// 目的:用乙個正好的陣列去存挑出的數字
char src[100] = ;
int num = 0;
scanf("%s", src);
// 1, 先查出數字個數
for (int i = 0; i < strlen(src); i++)
}// 2, 動態開闢一段空間, 並為\0多預留乙個空間
char *p = malloc(sizeof(char) * (num + 1));
// 儲存空間的首位址
char *head = p;
// 3, 存數字
for (int i = 0; i < strlen(src); i++)
}*p = '\0';
printf("%s\n", head);
周遊老師 16:05:10
1, 開闢乙個空間, 存乙個double型別的值, 並列印
double *p = malloc(sizeof(double));
*p = 5.5;
printf("%.1f\n", *p);
2, 開闢乙個空間, 存8個double型別的值, 並列印每乙個元素
double *p = malloc(sizeof(double) * 8);
for (int i = 0; i < 8; i++)
3, 開闢乙個空間, 存1個結構體(student)型別的值(為每乙個成員賦值), 並列印
student *p = malloc(sizeof(student));
p->num = 1;
p->*** = 'm';
p->score = 99.9;
strcpy(p->name, "superman");
printf("%d %s %c %.1f\n", p->num, p->name, p->***, p->score);
4, 開闢乙個空間, 存3個結構體(student)型別的值(為每乙個成員賦值), 並列印
student *p = malloc(sizeof(student) * 3);
for (int i = 0; i < 3; i++)
動態記憶體分配
在c 中建立乙個物件時,我們必須要為這個物件申請一塊記憶體,而且要用建構函式對這塊記憶體進行初始化。c 中的new和delete相對於c的庫函式malloc和free在這方面有很大的優勢,所以我們主要講的是運算子new和delete。當用new來建立乙個物件時,它會自動在堆裡為物件分配記憶體並且為這...
動態記憶體分配
為什麼使用動態記憶體分配?c語言中的一切操作都是基於記憶體的 變數和陣列都是記憶體的別名,如何分配這些記憶體由編譯器在編譯期間決定 定義陣列的時候必須指定陣列唱的 而陣列長度是在編譯期就必須決定的 需求 程式執行的過程中,可能需要使用一些額外的記憶體空間 malloc和free malloc和fre...
動態記憶體分配
c的儲存類別有4種 自動的 auto 靜態的 statics 暫存器的 register 外部的 extern 全域性變數時分配在記憶體中的靜態儲存區 靜態區域性變數屬於靜態儲存類別,在靜態儲存區內分配儲存單元,是在編譯時賦初值的,只賦初值一次,在程式執行時它已有初值,以後每次呼叫函式時不再重新賦初...