關於malloc函式的問題

2022-07-15 07:02:02 字數 999 閱讀 3384

1樓:匿名使用者

void p(int *a)

void 型別函式返回 int 型別指標,開玩笑嘛。立即刪掉#include

#include

void p(int *a)

void main()

這樣 把m直接作為引數是不行的,因為傳遞的是m的副本要通過引數傳遞

這樣寫void p(int **a)

完整的#include

#include

void p(int **a);

void p(int **a)

void main()

指標的指標,就不要那個static了,這樣的函式最好避免使用static

第二段int *p()

這個基本可以使用,但是外邊要注意釋放前邊分配的記憶體,否則會造成記憶體洩漏。

2樓:久孫傾

m[0]=5;的時候記憶體跨許可權訪問了。

第一個你宣告瞭一個int *m,這時候m只是一個指標,首先m的值不確定。第二就算你確定了m的值,m指向的記憶體也不是你的程式能用的。而你p()函式也沒有將申請到的記憶體地址返回給m。

因此你令m[0]=5;的時候系統不給你許可權。

第二個你呼叫了p()後,p會將在裡面申請的記憶體地址返回給m,m就指向你申請的記憶體空間, 當然,既然是申請的空間自然就有修改的許可權了。

當然,malloc到的東西用完後要記得free釋放掉。

3樓:匿名使用者

這不是malloc的問題:

你第一段void p(int *a)中malloc給了w,不是給a;

之後int *m;p(m);這時m還是沒賦值;m[0]=5;當然是錯的。

這該明白的吧……

4樓:匿名使用者

if(newpoint==null); 後面多了個分號,成一條語句了,後面的語句不在這個if控制範圍內定義常數時,不可以用typedef替換define typedef是型別重定義r

malloc函式的問題 80

malloc函式的問題 你dest2 只分配了記憶體 沒有把資料拷貝進去 所以dest2裡面的資料都是隨機的,需要在malloc下再加一句 strcpy dest2,source 另外使用malloc後要free才行。malloc函式的用法是什麼?c語言中malloc是動態記憶體分配函式。函式原型 vo...

關於函式的問題

令x t0 a,則由f x a f a x 得,f t0 a a f a a t0 則f t0 f 2a t0 則t0,2a t0 的對稱軸為x a 所以y f x 的影象關於直線x a對稱 2.當a 2,且方程f x 0恰有四個不同實數根,求這些實數根之和 顯然有因為對稱軸為a,則四個根兩兩對稱。...

關於函式的凹凸性的問題,關於函式凹凸性的問題

f x1 f x2 2 f x1 x2 2 為凹函式 為凸函式 可以畫圖證明 在我的印象中凹凸函bai數是du指函式在座標上的形狀,zhi比如開口向上的就是凹dao函式,開口向 內下的就是凸函式,凹凸形容狀是由函式的最大和最小值 決定的.例如一個函式有最大值,那就是開口向下,是凸函式,反之,一個函式...