C語言 動態記憶體經典題

2021-06-22 23:53:13 字數 1225 閱讀 1147

// 有一段文字,將文字中的所有單詞,存放到乙個字元指標陣列中(要求每個單詞記憶體恰好).

//可能遇到的bug

: 如果最後乙個單詞後面直接跟\0.無法獲取.

: 第乙個單詞前面出現空格,或者多個空格

: 單詞與單詞之間出現多個空格.

//1.如何儲存文字?

char str = " a41 a1421 b3511 b b c c c c dddddd jkthku";

//2.如何儲存乙個單詞?

char tempstr[20] = ; //儲存文字中的乙個單詞

//3.如何儲存堆區空間的位址?

char *p[255] = ;

//4.如何查詢單詞,並且將對應的單詞存放到臨時陣列中?

int i = 0; //標識str字串中字元的下標

int j = 0; //標識tempstr字串中字元的下標

int k = 0; //標識指標陣列中元素的下標.

while (1) else if (j != 0)

//當讀取到\0時,字串讀取完畢,跳出迴圈

if (str[i] == '\0')

i++; //移動到str陣列中的下乙個元素

}for (int i = 0; i < k; i++)

定義兩個整型指標,分別用malloc、calloc對其分配空間儲存3個元素,malloc分配的空間用memset清零,隨機對陣列進行賦值隨機範圍1-3,賦值後用memcmp比較兩個陣列。如果相同列印good!否則列印failed...

// int *p = malloc(sizeof(int) * 3);

// p = memset(p, 0, 3);

// int count = 0; //記錄三個元素相同的次數

// int *p1 = calloc(3, 4);

// for (int i = 0; i < 3; i++)

// printf("\n");

// for (int i = 0; i < 3; i++)

// for (int i = 0; i < 3; i++)

// }

// if (count == 3) else

C語言 動態記憶體

動態記憶體 動態的建立記憶體,申請記憶體空間為變數 存放於堆區,不能通過變數名或陣列名引用,只能通過指標引用,在windows中,堆中最大的連續記憶體塊為1.3g左右。標頭檔案 includemalloc 在空閒記憶體中分配連續記憶體,約等於2g,分配成功時返回乙個指向該記憶體塊的指標即第乙個位元組...

c語言動態記憶體分配 C 動態記憶體分配

動態記憶體分配 雖然通過陣列就可以對大量的資料和物件進行有效地管理,但是很多情況下,在程式執行之前,我們並不能確切地知道陣列中會有多少個元素。這種情況下,如果陣列宣告過大,就會造成浪費 宣告過小,就會影響處理。在c 中,動態記憶體分配技術可以保證程式在執行過程中按照需要申請適量記憶體,使用後釋放,從...

C語言動態記憶體分配

c語言動態記憶體分配 動態資料結構可以在執行時靈活新增 刪除或重排資料項。在執行時分配記憶體空間的過程稱為動態記憶體分配。記憶體分配函式如下 malloc 分配所需的位元組大小,並返回指向所分配空間的第乙個位元組的指標 calloc 為元素陣列分配空間,並初始化為零,然後返回指向該記憶體的指標 fr...