第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C語言 關(guān)于malloc分配內(nèi)存問題.

C語言 關(guān)于malloc分配內(nèi)存問題.

代碼1:為什么可以通過for循環(huán)分配i的內(nèi)存???#include<stdio.h> #include<malloc.h> #include<stdlib.h> int?main() { int?j; for?(j=0;?j<5;?j++) { int?*?i?=?(int?*)malloc(sizeof(int)); printf("內(nèi)存地址:%d\n",?i); } return?0; } /*輸出結(jié)果: 內(nèi)存地址:5312288 內(nèi)存地址:5312320 內(nèi)存地址:5312336 內(nèi)存地址:5312352 內(nèi)存地址:5312368 */代碼2:為什么這樣就提示錯誤??#include<stdio.h> #include<malloc.h> #include<stdlib.h> int?main() { int?*?i?=?(int?*)malloc(sizeof(int)); printf("內(nèi)存地址:%d\n",?i); int?*?i?=?(int?*)malloc(sizeof(int)); printf("內(nèi)存地址:%d\n",?i); int?*?i?=?(int?*)malloc(sizeof(int)); printf("內(nèi)存地址:%d\n",?i); return?0; } /*提示錯誤: a.c:?In?function?'main': a.c:10:8:?error:?redefinition?of?'i' a.c:8:8:?note:?previous?definition?of?'i'?was?here a.c:12:8:?error:?redefinition?of?'i' a.c:10:8:?note:?previous?definition?of?'i'?was?here */問題:問什么代碼1可以重復(fù)分配i的內(nèi)存而代碼2不可以,分配出來5塊內(nèi)存都是以i為命名的嗎?不會命名沖突嗎?初學(xué)程序小白,望大神搭救!!
查看完整描述

3 回答

已采納
?
Shanhui

TA貢獻(xiàn)1條經(jīng)驗 獲得超2個贊

代碼1 中的i是局部變量,在for語句中每一次循環(huán)時重新創(chuàng)建和釋放, ?代碼2中你重復(fù)使用了同一個變量,會報使用了已經(jīng)定義的變量的錯誤

查看完整回答
2 反對 回復(fù) 2016-04-17
  • 農(nóng)民爸爸
    農(nóng)民爸爸
    1.malloc的內(nèi)存之后沒有free,是否每次重復(fù)定義i時,會被釋放? 2.malloc內(nèi)存如果沒有釋放,該內(nèi)存空間,是否都還是以i來命名?
?
慕粉3754631

TA貢獻(xiàn)1條經(jīng)驗 獲得超0個贊

?使用malloce命令不是只需要在頭文件加入????#include <stdlib.h>????嗎?

怎么你的頭文件確實卻多了一個????#include<malloc.h>?????????我不懂,望解答。

還有個問題我想問你:

void * malloc(unsigned int size)????這個命令,

為啥例子是這樣寫的: malloc(100);????分配100個字節(jié)

我又看到這樣用的:(int *)malloc(5 * sizeof(int));????我知道sizeof(int)是測量本系統(tǒng)int型單位字節(jié)數(shù),但我不明白為什么在前面要加個 ?* ? 號?這樣有啥意義嗎?

還有就是另一個命令void * calloc(unsigned n,unsigned size); ?這個怎么用,比如我要開辟一個N個長度為size的連續(xù)空間,保存一個? ? char * 型的指針數(shù)組????那如何實現(xiàn)?我的想法是比如:
(char *)calloc(50,4);????開辟50個長度為4字節(jié)的連續(xù)空間

但我又怕會不會是這樣:

(char *)calloc(50,4 * sizeof(char));????這樣有問題嗎?可以加????*????號嗎?

可以sizeof(char)測量char型的單位字節(jié)數(shù)?恐怕這不能這樣測量吧?。。。???

希望大神解答



查看完整回答
反對 回復(fù) 2016-08-17
?
農(nóng)民爸爸

TA貢獻(xiàn)6條經(jīng)驗 獲得超0個贊

這個問題是,前幾天學(xué)習(xí)鏈表的創(chuàng)建,所疑惑的地方.

現(xiàn)在我有答案了

循環(huán)創(chuàng)建動態(tài)內(nèi)存,如上邊代碼 int * i.

i?的地址是不會變的,但i里邊保存即是指向的地址是每次循環(huán)就變動一次.

創(chuàng)建出來不知名的動態(tài)內(nèi)存,沒有被釋放,系統(tǒng)還是把那些內(nèi)存分配給了該程序.

但程序員已經(jīng)找不到了.

查看完整回答
反對 回復(fù) 2016-04-24
  • 3 回答
  • 1 關(guān)注
  • 2410 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號