c語言的malloc函式的引數問題,老是報錯

2021-05-06 04:44:26 字數 2183 閱讀 7830

1樓:

typedef struct edgenode*link,edgenode;

link lnode(int adjvex,link next)

2樓:匿名使用者

link已經被你定義成struct edgenode *了。注意你的typedef。

你的語句要改為

m = (link) malloc(sizeof(edgenode));

3樓:匿名使用者

m=(link)malloc(sizeof(edgenode));

c語言malloc為什麼會報錯?

4樓:

struct people* pe= malloc(sizeof(struct people));改為struct people* pe= (struct people*)malloc(sizeof(struct people));

malloc返回的是void*型別,所以需要轉換為struct people*型別

c語言入門,為什麼函式內用malloc會被釋放?如圖,我列印的時候就報錯了

5樓:匿名使用者

首先,你用creat(a)呼叫時,計算機會將存放在a中的數值0取出當成引數進行呼叫,這個明顯不是你的意圖。

你的目的是告訴creat函式變數a的地址,然後讓函式申請陣列後,將首地址放到變數a中去,所以應當在呼叫的時候給變數a的地址,寫成creat(&a);這樣才能改變a的內容。

試著修改一下程式:

void creat(int **a)

void print(int *a)

void main()

6樓:馮老師(必果學院

想法不錯,單獨的函式分配記憶體

不過有兩個問題你要注意

1 沒有free

2 引數可以傳入,如果不是引用,是不會傳出值的根據2 printf 中的a[5]中的a還是等於0,你可以用%p 列印輸出看看

兩個解決辦法:

1 是將creat改為 int* creat();

然後這樣用 a=creat();

2 是使用引用呼叫 void creat(int*&a);

7樓:匿名使用者

你把變數a變成全域性的就可以了.

8樓:餘生陪你虛度

create(int &a)

c語言:malloc函式,此句為何報錯,正確形式該是怎樣寫?

9樓:

pptr=(char**)malloc((n+1)*sizeof(char**));

既然你強制轉化為char **了,為什麼還要寫void*呢,malloc的返回值為void*型,不必寫在函式之前了

c語言我malloc後輸入一定數量的字串結果出錯為什麼?

10樓:匿名使用者

在while里加 i=0;

你的記憶體都溢位了,還有p=(char*)realloc(p,1)

c語言函式不接受三個引數的錯誤

11樓:匿名使用者

前面的函式宣告要跟後面的一致

bitree insert();

bitree insl();

變成下面試一下

bitree insert(bitree t,bitree f,int x)

bitree insl(bitree t)

c語言簡單指標程式,為什麼出現malloc的錯誤

12樓:莊政警

malloc是庫函式,呼叫它需要相關的標頭檔案

在開頭加一句

#include

c語言關於malloc函式的問題

13樓:

= = 讀當然沒問題了...你試著寫一下那個地址就飛你一個異常..

14樓:匿名使用者

沒有分配他也確實存在對不, 能用, 只是不知道是什麼而已。

pdh 只是指標, pdh + 10 還是個指標。

c語言 malloc 函式 分配記憶體空間尺寸的問題

這個問題首先得從堆疊說起,一個程式一般分為三段 段,資料段 靜態資料 和堆疊段。堆疊段儲存程式中的變數 程式傳遞的引數等 動態分配的變數儲存在堆中,靜態分配的儲存在棧中 堆疊的增長方式如下 程式在執行的時候會預先分配堆疊空間,所以你的問題中不一定修改了不該修改的地方,有可能那裡本來就是空的。再回到m...

C語言函式呼叫引數傳遞的是什麼,在C語言裡向函式傳遞的是「引數」是什麼意思

c語言傳遞的是值而不是地址,這一點從vb轉過來的程式設計師一定要注意。否則不經版 意間就會犯權錯誤。另外下層函式修改上層函式變數不是一種好習慣,容易引發錯誤。c語言中函式可以返回一個函式值,如果你需要返回多個函式值可以用下面的形式 fun int a,int b main 如果按vb的習慣,fun ...

c語言 怎麼寫 可變 引數函式,c語言如何定義一個可變引數函式 如何呼叫其輸入的引數 分別

include 可變引數襲函bai數必要的du標頭檔案 include long int sum unsigned int argc,可變引數函式必須包含至少一個確定的引數 zhilong int srt 0 int va unsigned int i va list vl 用於指向可dao變引數列...