急求c語言高手解答題目詳細說明最好

2021-04-03 13:23:19 字數 1701 閱讀 4676

1樓:匿名使用者

malloc在沒有足夠空間申請的時候會返回null,也就是0

因為&是取址運算子,注意,是運算。最後的q-p實際上等於q地址-p地址的偏移量,系統很智慧的給出了偏移5個int

realloc才可以在執行時改變空間的大小(陣列的大小)

2樓:與科技苦於

malloc給你的是地址,0地址就是null,while(1)一直執行,直到沒有記憶體可以申請,就返回null,此時p的值就為null,下面的語句向0地址寫入資料,程式就會終止

a[5]沒越界...就算越界了,比如a[6],雖然越界了,可不代表它沒有值,但他的值是不確定的對!

3樓:

1, malloc無空間時返回null,即0. 當指標指向0地址時,則是空指標,這裡是不允許直接寫入的。所以或奔潰退出

2. 陣列a的大小是6,因為5後面還有個逗號。 q指向第六個元素,p指向第1個元素,兩個整型指標相減為5.

3. 大小不是你想變,想變就能變。 一旦分配就不能再改變分配空間的大小了(除非釋放後重新分配)

4樓:匿名使用者

malloc返回連續的儲存單元的首地址  0地址不可用。

a陣列實際元素為 1 2 3 4 5 0 所以a[5]存在 地址差為5。

陣列一旦定義了,整個大小都不能變。 但是可以在程式執行時確定陣列長度(使用動態聯編定義動態陣列)

c語言題目2個,求高手幫忙解答,謝謝了!

5樓:我拋錨起航

本人也是初學c語言,寫得不夠簡練,見諒

1.#include

#include

main()

else i=1;

switch(i)

getch();}2.

#include

#include

main()

else

getch();}

6樓:

1、判斷迴文數

#include

int x,y;

judge(int * data,int len)}if(f==0)

printf("%d 是迴文 !\n",x);

}separate(int *data,int n)*(data+y)='\0';

for(j=0,k=y-1; j<=k; j++,k--)}void main()

2、比較並連線字串

#include

int main(void)

;char str2[256] = ;

char str3[512] = ;

printf("please input two strings:str1 str2\n");

scanf("%s %s", str1, str2);

printf("now-------\nstr1:%s\nstr2:%s\n", str1, str2);

int ret = -1;

ret = strcmp(str1, str2);

printf("ret= %d\n", ret);

if (ret>0)

else if (ret<0)

else

printf("new string:%s\n",str3);

return 0;}

一道c語言題目,高手解答詳細說明答案是什麼,並解釋原

答案ac a越界 不解釋了 c很明顯嘛,陣列名是什麼,是一個地址,是常量,常量可以自增麼,當然不可以,lz見過2 的麼,這個是錯的 d和e一個意思,只不過表達起來不同而已 a錯的,陣列定義的a 5 也就是a 0 a 4 c,a是首地址,a 也就是自加1,從a 0 指向了a 1 d,對指標接引用專,如...

c語言程式設計題目求高手解答,求高手解答c語言程式設計題目

int fun int x main printf sum d sum 這個題和我回答的另一個問題類似。fun int x 函式是遞迴函式。不理解的話可以看看遞迴方面的資料。或者繼續提問。希望能幫到你,你的採納是我答題的動力。int func int n sum sub return sum 對遞迴...

C語言題目,急求各位高手的解答

note your choice is c ide include stdio.h include malloc.h void main else if ch 9 ch 0 printf c ch 還有方法 很多api函式可以用咯 如 isdigit int ch 判斷這個字元是不是數字!還有 is...