-
你在 malloc 中沒有一種型別的分配記憶體,但你可以這樣寫,所以你可以這樣寫。
printf("%d",sizeof(char)*(strlen(b)+1));
sizeof(char) 是型別的位元組,然後乘以您分配的大小。
但是如果裡面的A是int,就不可能是這樣的,因為乙個int占用了4個位元組,那麼你分配的位元組數就是(strlen(b)+1)4個元素,其實malloc分配的位元組就是malloc中的引數。
-
#include
#include
#include
char *f(char *b)
char *a;
a=malloc(strlen(b)+1);由於傳遞 b 是 “gasdg” 並且 strlen(b)=5,因此 malloc 分配了 6 個位元組的記憶體。
int main ()
char *s="gasdg";
f(s);printf("%d",strlen(s));
return 0;
-
char *f(char *b){}
該函式缺少返回值。
新增返回 a; 就是這樣。
malloc 函式分配 6 個位元組。
-
你在這裡做什麼,f(s) 的目的是什麼,既然有返回值,為什麼不接收返回值。 空間已在功能中分配,應相應釋放空間。
-
你對 malloc 的使用是錯誤的,對了,你必須在 malloc 前面新增乙個演員表。
-
這都是 if 語句是錯誤的,而 if 的正確用法是。
如果(語句1)當然只有乙個語句的時候,你也不能寫大括號,第乙個語句不需要加雙引號,而且你也混淆了C語言賦值運算子逗號=地和邏輯運算子逗號==地的區別,前者是把右邊的變數或常量的值賦給左邊的變數, 後者是確定雙方是否相等。
因此,程式中的 if 應該這樣寫:
if(sign=='*')
printf("%d*%d=%d",x,y,x*y);
其他一些如果也是如此,我希望它能幫助到你。
-
括號是否成對,printf 是否寫正確 ......
-
** 中的 ** 與標題不匹配。 請單獨傳送匹配**。
-
sum 賦值的初始值是錯誤的,它應該是 0
開發工具有:VS2008或VS2010,80x86組裝工位 **有一篇巨集寫給初學者的 C C++,寫得很好。 標題是: >>>More
根據寫作要求,從以下幾個方面進行檢查:一是檢查試題是否正確,二是檢查中心是否清晰,三是檢查材料是否典型,四是檢查內容是否具體,五是檢查水平是否清晰,六是檢查句子是否流暢,七是檢查標點符號是否正確。 >>>More
如果你有幾種餵養方法,但不知道哪一種是正確的,那麼,當你問乙個問題時,把它發出來,並問乙個詳細的問題,以便其他人可以幫助你。